MySQL’de Inner Join Kullanımı

Bazı durumlarda bir MySQL veritabanındaki tablolarımızı bir arada kullanmamız gerekir. Sadece yazı ve kategori numaralarının bulunduğu bir tabloda, kategori numarasına karşılık gelen kategorinin adını almak için başlıkta bahsettiğimiz INNER JOIN … ON() kodunu kullanarak istediğimiz bilgileri tek bir sorguyla alırız. Bu komut yapısı şu şekildedir:

SELECT (alacağımız veriler) FROM tablo1 INNER JOIN tablo2 ON (kurallar);

Alacağımız veriler bölümünde gerekli olan sütun adlarına aralarına virgül koyarak yer veririz. Kurallar bölümünde ise klasik bir WHERE … sonu gibi hangi kurallar dahilinde işlemin yapılacağını belirleriz.

SELECT etiket_id, baslik FROM etiketler_yazi INNER JOIN etiketler ON etiket_id=etiketler.id;

Yukarıdaki örnekte etiketler_yazi tablosundan etiket_id değeri, etiketler tablosundan ise baslik değerini aldık. En son kurallar kısmında “etiketler.id” kullanımı dikkatinizi çekmiş olabilir. Burada her iki tablo da id değerine sahip olduğunu düşünerek hangi tablonun id değerini alacağını bildirdik. tabloadi.sutunadi şeklinde bu kullanım sayesinde MySQL’e hangi sütundan bahsettiğimizi anlatmış olduk.

Bunun gibi aynı sütun adına sahip değerlerde “tabloadı as takmaad” şeklinde özel olarak isimlendirme şansına da sahipsiniz. Eğer bu şekilde verileri alacak olsaydık:

SELECT t1.etiket_id, t2.baslik FROM etiketler_yazi as t1 INNER JOIN etiketler as t2 ON t1.etiket_id=t2.id;

Yukarıdaki kod ile bu kod aynı işlevi görüyor. Tek farkı burada özel isimlendirilmelere gidilerek MySQL ile kesin olarak bir anlaşma sağladık. Benzer sütun adları için de “t1.id as id2” şeklinde isimlendirmelere gidilebilir. Bir sorgu sırasında sonuçlarımızdaki sütun adı burada belirttiğimiz id2 değerini alacaktır.

Kolay gelsin…