在SQL

时间:2019-12-03 09:25:44

标签: sql exists not-exists

(第一次发贴,如果这是垃圾,请您道歉)

我有两个工作表-为了解决这个问题,我们将使用食物搭配。

表A

列A:食品类型-豌豆,牛肉,蛋糕,奶酪
B列:数量- 11、9、4、6

表B

A列:食品类型-豌豆,牛肉,蛋糕,奶酪
B列:数量- 11、9、4、6
C列:非常适合-胡萝卜,奶酪,奶酪,豌豆

我需要找到表A中存在的值,但在表B的“ GOES WELL WITH”列中没有专门列出的值。因此,在这种情况下,它将返回牛肉。我似乎无法使用NOT EXISTS,因为牛肉仍然会出现在表B中(在食品类型下)。我可以对代码进行修改,以查看特定列中是否存在值?

3 个答案:

答案 0 :(得分:1)

我想您可能只是使用NOT IN-

SELECT FOOD_TYPE
FROM TABLEA
WHERE FOOD_TYPE NOT IN (SELECT DISTINCT Goes_well_with
                        FROM TABLEB)

答案 1 :(得分:1)

您可以使用此SQL查询:

select Table_A.FOOD_TYPE from Table_A 
left join Table_B on Table_A.FOOD_TYPE = Table_B.Goes_well_with
where Table_B.Goes_well_with is null

答案 2 :(得分:0)

您应该显示not exists查询。它应该看起来像这样:

select a.FOOD_TYPE
from Table_A a
where not exists (select 1
                  from Table_B b
                  where a.FOOD_TYPE = b.Goes_well_with
                 );