具有以下简单的表结构:
Data
----------
id
Tag
----------
id
TaggedData
----------
id
tag_id
data_id
如果我有一个标签 ID 列表,我将如何获取每一行数据,其中列表中的每一行标签都与匹配的数据行相关,而不是其子集?
这是我现在不起作用的查询:
SELECT
Data.*
FROM
Data
LEFT JOIN
TaggedData ON (Data.id = TaggedData.data_id)
LEFT JOIN
Tag ON (Tag.id = TaggedData.tag_id)
WHERE
Tag.id IN ('1' , '2')
具体来说:这个不起作用,因为它将返回与标签 1 或 2 相关的任何数据行。不是 1和2。