搜索高和低的答案,并且没有运气。我确信它不会像我想象的那样复杂。
我有一个包含标题和代码的表格。代码是唯一的,可以有多个titlecode。 我希望能够选择那些包含我列出的代码的标题。
Titles Codes
-----------------------------------
Book1 001
Book2 010
Book2 020
Book2 021
Book3 030
Book3 040
所以我希望能够返回代码为020和021的标题。或者我列出的任何内容。 在这种情况下,它将返回Book2,因为该Title具有这两个代码。
我最初尝试过
SELECT Titles FROM table WHERE Codes = 020 AND Codes = 021
但是返回零结果,我明白为什么。没有行包含多个代码条目
SELECT Titles FROM table WHERE Codes = 020 OR Codes = 021
返回标题。 所以我一直试图使用GROUP BY和子查询试图获得它,但没有运气。 有人可以帮忙吗?提前致谢
答案 0 :(得分:4)
使用having
子句:
SELECT Titles
FROM table
GROUP BY Titles
HAVING SUM(Codes = '020') > 0 AND SUM(Codes = '021') > 0;
答案 1 :(得分:1)
为了获取您正在寻找的数据,您需要在桌面上使用自我加入:
SELECT * FROM table t1
JOIN table t2
ON t1.Title = t2.Title
WHERE t1.Codes = '020'
AND t2.Codes = '021'