我有 4 张桌子
POST:
id
POST_TAG:
post_id
tag_id
value
TAG:
id
SEARCH:
tag_id
post_tag_value
我需要查询在 SEARCH 表中具有所有标签和值作为行的帖子(不仅仅是标签的一个相等值):
编辑:很抱歉没有提供当前查询和足够的信息。
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 行测试,正确的结果是重复的行;我正在寻找交集而不是联合)
添加了 sqlfiddle:http ://sqlfiddle.com/#!2/9cfb9/1
查询的结果是 '1','1','2' 。它应该只有“1”,因为它有两个“标签”,而“2”只有一个。