我有下表中(id, Tag)包含以下值
(1, 17)
(1, 31)
(2, 17)
(3, 31)
Run Code Online (Sandbox Code Playgroud)
当我查询以下内容时
"SELECT id FROM table WHERE 1 AND Tag=17 AND Tag=31"
Run Code Online (Sandbox Code Playgroud)
我期望它返回(id)
(1)
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.(返回0行)
这有什么不对?
Mar*_*ith 11
对于任何特定行,标签不能同时为17和31. 您需要
SELECT id
FROM table
WHERE Tag in (17, 31)
GROUP BY id
HAVING COUNT(DISTINCT Tag) = 2
Run Code Online (Sandbox Code Playgroud)