我想选择使用内连接到另一个表的行。有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行。但我确信有这种条件的行。
查询需要选择t1
行的时候没有在t3
我在哪里错在此查询找到的记录?
感谢
编辑
正确的代码是
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
'查询需要选择T1行的时候没有在t3'找到的记录---不是不是什么' INNER JOIN'应该这样做。 – zerkms 2012-02-16 01:13:31
如何在t3不返回行时选择t3.act? – 2012-02-16 01:17:25
帮助你一个忙,并学习在逗号后面使用空格键。它可以更容易地告诉你正在使用哪个列(当然,我指的是使用't1.name,t1.label_id,t1.date'而不是't1.name,t1.label_id,t1。日期“。第一种情况下,当您需要稍后返回添加或删除列时,它的可读性要高得多,并且使其他人必须阅读它更容易*) – 2012-02-16 01:19:49