我想選擇使用內連接到另一個表的行。有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