我有兩個表格:照片和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