merhaba,
3 tane farklı tablom var. haberler, resimler, yorum.
x kişi yorum yaptı
x kişi haber ekledi
z kişi yorum yaptı
şeklinde listeleme yapmak istiyorum.
inner joini araştırdım fakat karşılaştırma istiyor.
ben 3 tabloyu birleştirip, tarihe göre son eklenen 10 tanesini listelemek istiyorum
örnek kod var mı? ya da ne ile yapabilirim?
3 farklı tablodan tarihe göre veri çekme
7
●542
- 09-12-2012, 23:01:35Üyeliği durdurulduselect haberler,yorum,resim where tarih=tarih
en basit bu
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 23:01:35 -->-> Daha önceki mesaj 22:57:32 --
yada sadece "join" ile yapabilirsin - 09-12-2012, 23:06:25SELECT `authors`.`header`, COUNT(`articles`.`id`) FROM `articles` LEFT JOIN `authors` ON `articles`.`author` = `authors`.`id` WHERE `authors`.`header` IS NOT NULL GROUP BY `articles`.`author`
bu sorguyla hangi yazar kaç adet makale ekledi görebiliyoruz. Örnek olarak bunu verebilirim.
LEFT JOIN olayını çoğaltarak yazarların(kullanıcıların) hangi tablolara hangi verileri eklediğini görebiliriz.
Ama senin seçeceğin ana tablo kullanıcı tablosu olacak yani:
ekleyen_id bu id numarasını PRIMARY olarak taşıyan tablo senin referans tablon olacak.
Birçok join ile ki burada 3 adet kullanman gerekecek bu verileri bulabilirsin COUNT cümleciği ile. - 09-12-2012, 23:41:27istatistik tablosu her zaman performansda iyidir, örnek verdiğim sorgu 0.02 saniye sürüyor bu hiç de iyi bir süre değil aslında.
Ama diğer tablolardaki veriler az ise sorun çıkartmaz. Sorun çıkartmayacak şekilde ise veya bu sorgular nadiren yapılıyorsa (yönetim paneli mesela) istatistik tablosuna ihtiyaç duyulmaz bu ikinci durum.
Sorguları kullanacağınız yer yönetim paneli değil ise tavsiyem her zaman istatistik tablosu ile çalışmaktır.