gpt4 book ai didi

mysql - 返回关系的整个列表匹配的所有行(而不是任意组合)

转载 作者:行者123 更新时间:2023-11-29 14:15:47 26 4
gpt4 key购买 nike

具有以下简单的表结构:

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。

最佳答案

这就是所谓的“关系划分”

   SELECT 
Data.ID
FROM
Data
INNER JOIN
TaggedData ON (Data.id = TaggedData.data_id)
INNER JOIN
Tag ON (Tag.id = TaggedData.tag_id)
WHERE
Tag.id IN ('1' , '2')
HAVING COUNT(DISTINCT tag.iD)=2

关于mysql - 返回关系的整个列表匹配的所有行(而不是任意组合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12711699/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com