..


Sponsor Bağlantılar

INNER JOIN veya kayıtları elde etmek için karşı eşleşmiyor

Max Bossi tarafından yazılmış Makale

Kim SQL bilgisi JOIN ne olduğunu bilir. Bizim kılavuzları ve diğer makalelerde JOIN ve nasıl bir veritabanında farklı tablolar arasındaki ilişkileri nasıl oluşturabileceğinizi açıkladı.

En sık gereksinim kesin bulur ve döndürür yazışma tatmin alanları dahil iki veya daha fazla tablo içinde aranan INNER JOIN yan tümcesi kurtarır bu durumda iki tablo arasında eşleşmeleri bulmak için JOIN cihaz tarafından memnun JOIN içinde.

Aksine daha az sezgisel JOIN içinde bir maç yok alanları tanımlamak için ihtiyaç vardır.

Bir örnek verelim.
Bir e-ticaret veritabanı sadece iki tablo oluşur yönetmek istediğinizi varsayalım:

  • müşteriler (müşteri ana verileri içeren)
  • emir (müşteriler tarafından yapılan siparişleri içeren)
Artık müşterilerin iki farklı liste çıkarmak istediğinizi varsayalım: zaten bir sipariş, 2) henüz bir şey almadığımızı müşterilerin listesini yerleştirdiğiniz müşterilerinin 1) bir liste.

Ilk gereksinimi karşılamak için, tabii ki, oldukça basittir:

 



 SEÇ CUSTOMER.FIRST, CUSTOMER.LAST







 Müşteriler DAN







 INNER JOIN Siparişler







 = Clienti.id ordini.id_cliente AÇIK







 ASC CUSTOMER.LAST ORDER BY

 
ve şimdiye kadar hiçbir sorun.

Peki sonuç tersine çevirmek için ne yapabiliriz? Şey ... İlk olarak, bir INNER JOIN kullanabilirsiniz, ancak bir SOL Ancak, sol tablodan sonuç yine döndürülür tam ancak kısmi olmayan bir maç bulmak için JOIN yoktur.
Bu olmadan biz kayıtları NULL (SQL NULL değer bir yokluğu tanımlayan "özel değer" bir tür olarak tanımlanır olarak tanımlanan (yani rapor bulunmayan) eksik (WHERE yan tümcesi kullanarak) bakacağız ..)

Kodu görelim:

 



 SEÇ CUSTOMER.FIRST, CUSTOMER.LAST







 Müşteriler DAN







 Siparişler LEFT JOIN







 = Clienti.id ordini.id_cliente AÇIK







 NULL ordini.id_cliente NEREDE







 ASC CUSTOMER.LAST ORDER BY

 
Sonuç olarak, aslında, bir şey satın hiç müşterilerimizin isimleri listesidir.

Aynı Kategoride ...
E-Öğrenme
MS Access (Gelişmiş) MS Access (Gelişmiş)
Hızlı ve kolay bir veritabanı oluşturmak ve yönetmek öğrenin. 29 € dan başlayan fiyatlarla.
MySQL (Ders) MySQL (Ders)
Açık kaynak veritabanı yönetimi. En düşük € 39.
SQL ve Veritabanı (Ders) SQL ve Veritabanı (Ders)
Ilişkisel veritabanı oluşturma ve yönetme. En düşük € 39.
Sponsor Bağlantılar