MySQL’de Üç Tabloyu Tek Sorguda Birleştirmek

Bazen aynı anda üç tablodaki verileri kullanmamız gerekebilir. Örneğin aşağıdaki şekilde üç tablomuz olsun:

veriler

Bu tablolardan “kullanici” kullanıcı bilgilerini saklıyor, “gruplar” ise kullanıcıların üye olabileceği grupları. “kullanici_grup” tablosu ise bu ikisi arasında bir köprü oluşturuyor. Yani hangi kullanıcının hangi grubu seçtiğini gösteriyor. Şimdi bu üç tabloyu kullanarak kullanici – grup şeklinde ekrana yazdıralım.

Kullanacağımız kod:

SELECT k.kullanici, g.grup
FROM kullanicilar k, gruplar g, kullanici_grup kg
WHERE kg.kullanici_id = k.id AND kg.grup_id = g.id; 

SELECT’ten hemen sonra almak istediğimiz verileri belirttik. FROM’dan sonra kullanacağımız tabloları belirttik. Her tablo için bir isim belirttik. Örneğin yukarıdaki işlemde tüm k’lar “kullanici” tablosunu belirtiyor. Bunu MySQL’in anlaması için şeklinde belirttik.

WHERE’den sonra iki tablo arasında köprü olan kullanici_grup tablosu ile eşleşen kullanici_id ve grup_id leri belirttik. Böylelikle MySQL sunucusu üç tablodan tek bir sorgu sonucu çıkartacaktır.