Diğe Tabloda Bulunmayan Kayıtları Getiren Sql Cümlesi

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Diğe Tabloda Bulunmayan Kayıtları Getiren Sql Cümlesi

Mesaj gönderen Ali Erdoğan »

Merhaba,

A Tablosu:

ID ISIM
1 Ali
2 Ahmet
3 Ayşe
4 Osman


B Tablosu:

ID ISIM
1 Ali
3 Ayşe



Şeklinde olsun ben şimdi A tablosundan B de bulunmayan kayıtları çekmek istiyorum. Yani Ahmet ve Osman'ı.Ancak bir türlü uygun bir sql cümlesi yazamadım.Bunu nasıl yapabilirim.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kod: Tümünü seç

select * from a_tablosu 
where isim not in (select isim from b_tablosu)
işini görür.

Bunu join olayı ile de çözebilirsin!
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
onaydin

Mesaj gönderen onaydin »

Kod: Tümünü seç

SELECT * FROM t1 WHERE id NOT IN (SELECT id FROM t2);
SELECT * FROM t1 WHERE NOT EXISTS (SELECT id FROM t2 WHERE t1.id=t2.id);

Can be rewritten as: 

SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id
                                       WHERE table2.id IS NULL;

MySQL in helpinden.
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Teşekkür ederim arkadaşlar ikisi de işime yaradı.
Cevapla