SQL İç Birleştirme ile Birden Fazla Tablodan Veri Alma

İç birleştirmeler iki veya daha fazla veritabanında görünen bilgileri döndürür

İç bağlantılar, SQL'de en çok kullanılan birleştirmelerdir. Yalnızca iki veya daha fazla veritabanı tablosunda bulunan bilgileri döndürürler. Birleştirme koşulu, hangi kayıtların birlikte eşlendiğini ve WHERE maddesinde belirtildiğini belirler. Örneğin, hem araç hem de sürücünün aynı şehirde bulunduğu sürücü / araç eşleştirmelerinin bir listesine ihtiyacınız varsa, aşağıdaki SQL sorgusu bu görevi gerçekleştirir:

SELname last name, firstname, tag FROM sürücüleri, araçlar WHERE drivers.location = araçlar.location

Sonuçlar burada:

lastname firstname etiketi
----------- ------------ ----
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Sonuçların tam olarak aranan şey olduğunu unutmayın. WHERE yan tümcesinde ek ölçütler belirterek sorguyu daha da genişletmek mümkündür. Orjinal sorguyu, sürücülerin araç kullanmalarına izin vermedikleri araçlarla eşleştirdiklerini (kamyon sürücüleri arabaya ve tersi) varsayın. Bu sorunu çözmek için aşağıdaki sorguyu kullanabilirsiniz:

SELECT lastname, firstname, tag, vehicles.class sürücüler, araçlar WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class

Bu örnek, sınıf belirsiz olduğu için SELECT yan tümcesindeki sınıf özniteliğinin kaynak tablosunu belirtir; her iki tabloda da görünür. Kod genellikle, sorgu sonuçlarına hangi tablonun sütunun ekleneceğini belirtir. Bu durumda, sütunlar aynı olduğu ve bir equijoin kullanılarak birleştirildiği için bir fark yaratmaz. Bununla birlikte, sütunlar farklı veriler içeriyorsa, bu ayrım kritik olacaktır. İşte bu sorgunun sonuçları:

lastname firstname etiketi sınıfı
---------- ------------ ---- ------
Baker Roland H122JM Araba
Smythe Michael D824HA Kamyon
Jacobs Abraham J291QR Araba

Eksik satırlar Michael Smythe ile arabasına ve Abraham Jacobs'a bir kamyonla, araç kullanma yetkisi olmayan araçlarla eşleştirildi.

Üç veya daha fazla tablodaki verileri birleştirmek için iç birleştirmeler de kullanabilirsiniz .