çerez verilere dayalı iki tablo birleştirme

2 Cevap php

Ben bir çerez tabanlı favori sistemi oluşturmak ve bu yüzden sık olarak işaretlenmiş ne kullanmak öğeleri söyleyebilirim çerez saklanan benzersiz kullanıcı kimliği dayalı iki tablodan veri katılmak için ihtiyaç duyuyorum.

Ben bir JOIN yapmak gerekiyor ama onları çok kullanmadım ve henüz çevrelerindeki kafamı gerçekten dont know.

Db gelen öğeleri seçer, mevcut sorgu:

$query = mysql_query("SELECT *, UNIX_TIMESTAMP(`date`) AS `date` FROM songs WHERE date >= DATE_SUB( NOW( ) , INTERVAL 2 WEEK ) ORDER BY date DESC");

Kimlik FAVORİ masa şarkıları ve USERID gelen şarkı kimliği, bir çerez saklanan bir karma birincil anahtar olduğunu ID FAVORİ USERID: Benim favorim tablo olarak kurulum.

Ben USERID alan çerez karma değişkeni maçları favoriler tablodan tüm satırları katılmak gerekir.

Ben de bu yüzden bu gibi kaç kişi gösterebilir yüzden favori olarak öğeyi ayarlamak insanların sayısını sayısını görüntüleyebilirsiniz şarkı id eşleşen sık satır sayısını toplamak gerekiyor. Ama belki de ayrı bir sorgu olarak bunu yapmak gerekir?

2 Cevap

Siz birleştirme koşullarını mantıksal (ve, veya, ...) operatörü olabilir:

select t1.*
from t1
join t2 on t1.id = t2.fid and t2.foo = 'blah'

Ayrıca her şarkı "favorited" olmuştur kez toplam sayısını sorgulama yapıyorsanız o zaman bu yol gibi, aynı zamanda yapısı tarafından bir grup gerekir:

select *, count(f.id)
from songs as s
left join favorites as f on s.id = f.favorite and f.userid = <hash>
group by s.id