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

tüm kullanıcıları içeren tablomuz

 

tüm kursları içeren tablomuz
select * from kullanici inner join kurs on kullanici.kurs_id=kurs.id
inner join sorgusu sonucunda seçilen verilerimiz

php içerisinde kullanmak istediğimizde ise aşağıdaki kod bloğunu yazmamız gerekir.

<?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
...
...
...
*/

eğer sorgumuzu

select
kullanici.id,kullanici.ad,kullanici.kurs_id,kurs.kurs_ad
from
kullanici inner join kurs
on
kullanici.kurs_id=kurs.id

kodları ile değiştirirsek.
sadece seçtiğimiz kolonları getirir.

inner join ile sadece seçtiğimiz kolonların listesi