gpt4 book ai didi

MySQL:M:N 关系的子集和超集

转载 作者:行者123 更新时间:2023-11-29 13:25:18 25 4
gpt4 key购买 nike

假设我有典型的文章和标签 M:N 关系表。

 article_id | tag_id
------------+--------
A1 | T1
A1 | T2
A1 | T3
A2 | T1
A2 | T2
A3 | T1
A3 | T4

在此示例中,文章 A1 的标签(T1、T2、T3)是文章 A2 的标签(T1、T2)的超集。反之亦然,A2 的标签是 A1 的子集。 A3 既不是 A1 或 A2 标签的超集,也不是子集。

查找 AX 标签是否是 AY 标签子集的最有效方法是什么?

最佳答案

你就不能跑吗

SELECT t1.*
FROM tbl AS t1
LEFT JOIN tbl as t2
ON t2.article_id ='A1'
AND t1.tag_id = t2.tag_id
WHERE t1.article_id = 'A2'
AND t2.article_id IS NULL;

如果没有返回记录,则 A2 的所有标签都在 A1 中。然后,您可以在另一个查询中使用 EXISTSNOT EXISTS 函数

关于MySQL:M:N 关系的子集和超集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20224680/

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