別のテーブルに内部結合を使用して行を選択したいとします。COUNT()= 0を持つことについて混乱しています
SELECT COUNT(t3.ID), t3.act, t3.dj_id, t1.ID,
t1.name, t1.label_id, t1.date, t1.genre,
t1.plink, t1.featana, t1.promo_aktif
FROM `release` t1
INNER JOIN `acts` t3 ON t3.release_id = t1.ID
WHERE t1.ID IN ($lst) AND t1.promo_aktif = 'Active'
AND t3.act = 'hide' AND t3.dj_id = '$id'
HAVING COUNT(t3.ID) = 0
ORDER BY t1.ID DESC
LIMIT 0,15
このクエリでは、結果は空です。 0行を選択します。しかし、私はこの条件で行があると確信しています。
クエリは、このクエリで私は間違っt3
で見つかったレコードがないときt1
の行を選択する必要がありますか?
おかげ
EDIT
正しいコードが
SELECT t3.act, t3.dj_id, t1.ID,
t1.name, t1.label_id, t1.date, t1.genre,
t1.plink, t1.featana, t1.promo_aktif
FROM `release` t1
LEFT JOIN `acts` t3 ON t3.release_id = t1.ID AND t3.act = 'hide' AND t3.dj_id = '$id'
WHERE t1.ID IN ($lst) AND t1.promo_aktif = 'Active'
AND t3.release_id is null
ORDER BY t1.ID DESC
LIMIT 0,15
ですINNER JOINがやろうとしていた。 – zerkms
t3が行を返さない場合、どのようにt3.actを選択できますか? –
自分で好きなことをして、カンマの後にスペースバーを使用する方法を学んでください。どの列を使用しているかを簡単に伝えることができます(もちろん、t1.name、t1.label_id、t1の代わりに 't1.name、t1.label_id、t1.date'を使用することを指しています)。カラムを追加または削除するために後で戻ってくる必要があるときには、最初の方がはるかに読みやすくなり、それを読む必要がある人はもっと簡単になります) –