我有两个表格:照片和photograph_tags。 Photograph_tags包含一个名为photograph_id的列(照片中的ID)。您可以为一张照片制作多个标签。我有一个与三个标签相关的照片行:男孩,小溪和水。但是,运行以下查询返回0行这个SQL查询有什么问题?
SELECT p.*
FROM photographs p, photograph_tags c
WHERE c.photograph_id = p.id
AND (c.value IN ('dog', 'water', 'stream'))
GROUP BY p.id
HAVING COUNT(p.id)=3
此查询有问题吗?
My tables look like so
-----------------------
photographs
-----------------------
id | title | location
------------------------
7 | asdf | c:\...
-----------------------
photograph_tags
-----------------------
id | photograph_id | value
1 | 7 | dog
2 | 7 | water
3 | 7 | stream
4 | 7 | mountains
I want to pull all photograph rows that relate to at least all three of the searched tags
这个查询显示多个相同的行多次 – ThinkingInBits 2010-05-18 06:09:58
和一些没有全部三个 – ThinkingInBits 2010-05-18 06:10:19
@ThinkingInBits:你去了,更新了SQL,所以照片必须有所有标记 – 2010-05-18 06:31:00