我需要一个提示来解决这个SQL(自联接)问题:
一个表格,列value
和category
id || value || category || foo
------------------------------------
1 || 1 || a || 1
2 || 2 || a || 4
3 || 3 || a || 2
4 || 0 || b || 2
5 || 1 || b || 1
6 || 2 || b || 4
7 || 3 || b || 2
8 || 4 || b || 2
9 || 5 || b || 1
10 || 5 || b || 4
11 || 6 || b || 2
12 || 99 || z || 2
我想比较类别b
中的所有值和类别a
中的所有值,并获取b
中的所有值,而不是a
中的所有值或id
{1}},所以:
(0,1,2,3,4,5,5,6)“比较”(1,2,3)=> (0,4,5,5,6)
答案 0 :(得分:2)
ANSI SQL:
SELECT
*
FROM
tbl
WHERE
category = 'b'
AND value NOT IN (SELECT value FROM tbl WHERE category = 'a')
直播here。
答案 1 :(得分:0)
开始分析您的任务:“获取b中的所有值,而不是a或其ID”
SELECT value FROM mytable
WHERE category = 'b'
AND value NOT IN (SELECT value FROM mytable WHERE category = 'a')