我有三张表,分别是news (id, title, descrption)
,cat (id, title)
,newscat (id, newsID, catID)
。如您所见,每个news
都可以与任何或某些cats
相关。我想要一个查询获取所有的cat
s,如果cat
与news
“checked”相关。我写了这个问题:
SELECT
c.id, c.title, IF (nc.newsID = $newsID, 'checked', null) as checked
FROM
cat c
LEFT JOIN newscat nc ON c.id = nc.catID
但这不管用。有些是重复的。怎么了?
最佳答案
使用Wr1t3r的建议:
SELECT
c.id, c.title, IF (COUNT(IF(nc.newsID=$NewsID,1,NULL)) > 0, 'checked', null) as checked
FROM
cat c
LEFT JOIN newscat nc ON c.id = nc.catID
GROUP BY c.id
关于mysql - 选择语句中的if语句与MySQL中的join一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28969688/