PHP PDO ve INNER JOIN

PHP ile geliştirdiğiniz projenizde MySQL veritabanı kulanıyorsanız ve projenizde log kayıtları veya kullanıcıya atanmış farklı tablolar mevcut ise önce kullanıcı ID sini çekmeniz sonrasında bu kullanıcı ID sine ait farklı tablodaki veriyi çekmeniz gerekir.

Yukarıda bahsettiğimiz gibi bir işlemi tek seferde birden fazla kayıt için yani bir for döngüsünde yada foreach döngüsünde yapıyorsanız performans ile ilgili büyük kayıplar yaşayacaksınız yani iki tabloya saniyeler içinde binlerce defa bakacaksınız , bu işlemleri PDO ve INNER JOIN ikilisi ile çok kolay şekilde yapabilirsiniz.

INNER JOIN i basit şekilde anlatmak gerekirse ;

SELECT * FROM birinci_tablo INNER JOIN ikinci_tablo ON birinci_tablo.userID=ikinci_tablo.userID

ON dan sonra yer alan söz dizesinde birinci tabloda yer alan key ile ikinci tabloda yer alan key birleştirilmesi işlemidir yani birinci tabloda bulunan userID ile ikinci tabloda yer alan user ID birebir eşleştirilmektedir tek bir tablo ancak iki tablodada yer alan sütunların birleştirilmiş halini düşünelim .

bu işlemi gerçekleştirdikten sonra PDO ile ilişkilendirelim ;

$logKayitlari=$db->prepare("SELECT * FROM users INNER JOIN logs on users.ID=logs.userID where tarih < $bugun") ->fetchAll(FETCH::ASSOC);
print_r($logKayitlari);