【发布时间】:2012-03-11 13:31:47
【问题描述】:
我有三个表格图像,image_tags 和 tags。 image 表包含图片信息,tags 包含标签信息,image_tags 包含图片和标签之间的关系,关系是多对多的。我想根据带有 AND 条件(不是 IN)的多个标签过滤图像。
我试过了:
SELECT images.* FROM images
LEFT JOIN image_tags ON image_tags.image_id = images.id
LEFT JOIN tags tag_0 ON image_tags.tag_id = tag_0.id
LEFT JOIN tags tag_1 ON image_tags.tag_id = tag_1.id
WHERE tag_0.tag = "tagme"
AND tag_1.tag = "excellent"
AND images.filesize > 0
GROUP BY images.id
ORDER BY images.posted DESC LIMIT 0, 40
与
SELECT images.* FROM images
LEFT JOIN image_tags ON image_tags.image_id = images.id
LEFT JOIN tags ON image_tags.tag_id = tags.id
WHERE tags.tag = "tagme"
AND tags.tag = "excellent"
AND images.filesize > 0
GROUP BY images.id
ORDER BY images.posted DESC LIMIT 0, 40
但是没有任何效果,尽管它们存在,但它总是返回零结果。
【问题讨论】:
标签: mysql sql select left-join