帮助进行sql查询。有表:
tbl_article(id, title)
tbl_category(id, title)
tbl_tag(id, title, geotag)
和链接表:
tbl_category_articles(id, category_id, article_id)
tbl_article_tag(id, article_id, tag_id)
您需要选择所有记录,从tbl_category_articles哪里category_id = 177,如果article没有标签,哪个字段有geotag = 1。一般来说,我不知道如何geotag实施检查。
我的错误要求:
SELECT * FROM `tbl_category_articles` ca
INNER JOIN tbl_article_tagnew at
ON ca.article_id = at.article_id
INNER JOIN tbl_tagnew t
ON at.tag_id = t.id
WHERE ca.category_id = 177
AND t.geotag = 0
以下构造可能会帮助您解决问题:
我必须马上警告你,我现在没有任何技术手段来检查请求,所以那里可能存在语法错误,但我希望这个想法很清楚。
PS 先生们发现问题文本中表格链接的图形方案加快了接收答案的时间并减少了可能的错误数量,特别是如果答案必须在常规文本编辑器中“膝上”写下:)。
或多或少是这样的:
意思是这样的:
LEFT JOIN不应具有此值的表:所以我们得到一个样本,
tbl_tag它加入geotag = 1或根本不加入。我们只需要过滤掉那些没有加入的行: