MySQL Join Kullanımları
İnner Join
iki tablomuz var birinde illeri, diğerinde ilçeleri tutuyoruz ortak noktamız plaka kodları,
SELECT il.kod AS plaka, il.ad AS `İL`, ilce.ad AS `İLCE` FROM il INNER JOIN ilce ON (il.kod = ilce.kod)
Left Join
İnner Joinde birden fazla tablolardaki verileri eşleştirerek tek sorguda ver çekiyorduk, inner join kullanımında her iki tablodan iki parametreyi eşleştirerek aldığımızda, eğer ikinci tabloda ayni id’den eşleştirilebilecek bir veri var ise getiriyordu. yok ise sorgu cevabında o kayıt hiç gözükmüyordu.
Left Joinde ise ilk tablomuzda veri var ama ikinci veya üçüncü tablomuzda eşleşecek veri yok ise ,fakat yinede sorgularda gözükmesini istiyor isek kullanılır. Alttaki örnek daha açıklayıcı olacaktır.
iki tablomuz var birinde illeri, diğerinde ilçeleri tutuyoruz ortak noktamız plaka kodları,
SELECT il.kod AS plaka, il.ad AS `İL`, ilce.ad AS `İLCE` FROM il INNER JOIN ilce ON (il.kod = ilce.kod)
INNER JOIN kullandığımda, YOZGAT’ın plakası ile eşleşen ilce tablosunda bir kayıt bulunmadığı için hiç gösterilmedi.
SELECT il.kod AS plaka, il.ad AS `İL`, ilce.ad AS `İLCE` FROM il LEFT JOIN ilce ON (il.kod = ilce.kod)
LEFT JOIN kullandığımda, YOZGAT’ın plakası ile eşleşen ilce tablosunda bir kayıt bulunmamasına rağmen ilimiz sorguda geldi ama değer Null
Eğer sadece ikinci tablomuzda eşleşecek verisi olmayan illeri listelemek ise amacımız imdadımıza is NULL yetişiyor.
Right Join
Left Joinin tam tersi,
Left Joinde, ilk tablomuz (il) olan il’de var olup, ikinci tablomuzda eşleşen (ilce) olmasa da illerimizi dökebiliyorduk,
Right Joinde ise il’i olmayan ilçeleri de listeleyebiliyoruz. ilk tablomuzda bir eşleşecek karşılığı olmayan, ikinci tablomuzdaki kayıtları da dökebilmemize olanak sağlıyoruz.
Örnek; Kullanımı Üstteki kodumuzun aynısı LEFT’i silip RIGHT yazdık ve sonuç.
SELECT il.kod AS plaka, il.ad AS `İL`, ilce.ad AS `İLCE` FROM il RIGHT JOIN ilce ON (il.kod = ilce.kod)
Eğer sadece ilk tablomuzda eşleşecek verisi olmayan ilçeleri listelemek ise amacımız imdadımıza yine is NULL yetişiyor.
Kullanımı,
SELECT
il.kod AS plaka,
il.ad AS `İL`,
ilce.ad AS `İLCE`
FROM
il
RIGHT JOIN ilce ON (il.kod = ilce.kod)
WHERE il.kod is NULL
Sonuç,