POST:
id
POST_TAG:
post_id
tag_id
value
TAG:
id
SEARCH:
tag_id
post_tag_value
我需要查詢職位誰擁有所有標籤和值排在搜索表(不只是一個等於一個標籤):
編輯:抱歉不提供當前查詢和足夠的信息。
SELECT POST.id FROM POST,POST_TAG, SEARCH
WHERE
POST.id = POST_TAG.post_id AND
POST_TAG.tag_id= SEARCH.tag_id AND
POST_TAG.value = SEARCH.value;
它適用於如果SEARCH表有一行。問題是,什麼時候有更多。應該有更少的結果,但實際上有更多的(如果測試2行,正確的結果是被複制的行;我lookng爲路口沒有工會)
新增sqlfiddle:http://sqlfiddle.com/#!2/9cfb9/1
查詢的結果是'1','1','2'。它應該只有'1',因爲它有兩個'標籤',而'2'只有一個。
太好了。讓我們來看看你到目前爲止有哪些查詢,有人會幫助你(將它編輯成你的問題,而不是將它添加到評論中)。 – halfer
至少提供一些數據http://sqlfiddle.com –
閱讀此問題的很多方法來做到這一點:[如何過濾SQL結果中有一個通過關係](http://stackoverflow.com/questions/7364969/how-to-filter-sql-results-in-a-many-through-relation) –