sql ile iki tabloyu isteğime göre bağlama

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kaptan
Üye
Mesajlar: 395
Kayıt: 01 Tem 2005 04:02

sql ile iki tabloyu isteğime göre bağlama

Mesaj gönderen Kaptan »

iyi günler.
bir sql sorgusu yapmak istiyorum. şöyle...
iki tane tablo var. bu tablolar da birbiriyle bağlantılı.
kısaltarak yazıyorum... (Veritabanım access)

musteri tablosu
id
adi
adres

ziyaret tablosu
id
ziyaret
tarih
mid

musteri tablosundaki id ile ziyaret tablosundaki mid birbirine bağlı. müşterilerin ziyaret bilgileri ziyaret tablosunda.
bazı müşterilerin ziyaret kaydı yok bazılarının ise birden fazla var.
ben müşterileri ve son yapılan ziyareti bir tabloda göstermek istiyorum.
select musteri.*,ziyaret.* from musteri,ziyaret where musteri.id=ziyaret.mid dediğimizde bütün ziyaretleri gösteriyor ve ziyareti olmayan müşterileri göstermiyor.
istediğim ziyareti yapılmayan müşterileri de göstersin, birden fazla ziyaretleri olanlardan da son ziyareti göstersin.
Bunu yapmak mümkün mü? Muhtemelen mümkündür. yardımlarınız için teşekkürler.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: sql ile iki tabloyu isteğime göre bağlama

Mesaj gönderen conari »

Kod: Tümünü seç

select ID,
adi,
adres, 
(select top 1 ziyaret, tarih, mid from ziyaret 
where ziyaret.ID=müsteri.ID order by tarih DESC)
from musteri
MSSQL de böyle alabilirdim.Access de vermesi lazım.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kaptan
Üye
Mesajlar: 395
Kayıt: 01 Tem 2005 04:02

Re: sql ile iki tabloyu isteğime göre bağlama

Mesaj gönderen Kaptan »

Hocam çok teşekkürler.

Kod: Tümünü seç

SELECT id, adi, adres, (select top 1 ziyaret, tarih, mid from ziyaret where ziyaret.mid=musteri.id)
FROM musteri;
bu kodu kullandığımda aşağıdaki hatayı alıyorum.

"Ana sorgunun FROM yan tümcesinde EXISTS saklı sözcüğünü kullanmadan birden çok alan döndürebilen bir alt sorgu yazdınız. alt sorgunun SELECT deyimini, yalnızca bir tek alan gerektirecek biçimde değiştirin"
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: sql ile iki tabloyu isteğime göre bağlama

Mesaj gönderen sabanakman »

Alt sorgu olarak Access çok başarılı olamasa da bazı kuralları gözetince gayet iyi derecede sorgular çalıştırabilmektedir. Mesela alttaki yapıda bir sorgu çalışacaktır diye tahmin ediyorum (tipi date olmayan alanda bu yapı bende çalıştı :) ).

Kod: Tümünü seç

select * from musteri
left join (select * from ziyaret where tarih in (select max(tarih) from ziyaret group by mid)) as tbl on musteri.id=tbl.mid
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kaptan
Üye
Mesajlar: 395
Kayıt: 01 Tem 2005 04:02

Re: sql ile iki tabloyu isteğime göre bağlama

Mesaj gönderen Kaptan »

çok teşekkürler. sorgu çalıştı.
Cevapla