我有以下情况需要破解。
- 我有带标签的元素。
- 这些标签属于类别 A 和 B。
- 我想按类别 A 标签搜索项目。
- 如果该项目已标记有两个类别的标签,我将不想要它们。
+---------+--------+--------------+ | Item ID | Tag ID | Tag Category | +---------+--------+--------------+ | 1 | 1 | A | | 1 | 2 | A | | 1 | 3 | B | | 2 | 1 | A | | 2 | 2 | A | | 3 | 3 | B | +---------+--------+--------------+
因此,当我运行查询时,我应该只取回第 2 项。
最佳答案
您可以使用子查询
来实现这一点。
试试这个:
select * from t1
where `Item ID` in
(select `Item ID` from t1
group by `Item ID`
having COUNT(DISTINCT `Tag Category`) < 2)
and `Tag Category` = 'A';
关于MySQL - 寻找与一个标签相关但不与另一个标签相关联的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36300207/