iki tabloda birbiri ile ilişkli kayıtları listelerken tek sorgu kullanmak istediğimizde kullanacağımız yöntemin başında inner join gelir.
inner join ifadesi ile iki tablodaki belirtilen sütunların sadece eşleşen kayıtları gelir.
inner join ifadesi yerine sadece joinde yazılabilir.
fazla bi açıklama yapmadan doğrudan örneklemeye geçelim.
iki tabloda ki ortak olan kayıtları listeleyen inner join sorgusu ( select * – tüm alanları seçme)
kullanıcılar tablosu
[code language=”sql”]select * from kullanici inner join kurs on kullanici.kurs_id=kurs.id[/code]
php içerisinde kullanmak istediğimizde ise aşağıdaki kod bloğunu yazmamız gerekir.
[code language=”php”]
<?php
$sorgu = $pdo->query("select * from kullanici inner join kurs on kullanici.kurs_id=kurs.id");
$kullanicilar = $sorgu->fetchAll(PDO::FETCH_OBJ);
foreach ($kullanicilar as $kullanici) {
echo "Kullanıcı Adı :: ". $kullanici->ad ."<br />";
echo "Kurs Adı :: ". $kullanici->kurs_ad ."<br />";
}
/*
çıktısı
Kullanıcı Adı :: Mustafa Yılmaz
Kurs Adı :: php
…
…
…
*/
[/code]
eğer sorgumuzu
[code language=”sql”]select
kullanici.id,kullanici.ad,kullanici.kurs_id,kurs.kurs_ad
from
kullanici inner join kurs
on
kullanici.kurs_id=kurs.id[/code]
kodları ile değiştirirsek.
sadece seçtiğimiz kolonları getirir.