如何从b表中没有的表中选择值?

ca1c2owp  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(303)

我在mysql数据库中有两个表:a和b。
a、 b、c列。
表a:

a(1) = 1 
 a(2) = 2
 a(3) = 3

表b:

a(1) = 1 
 a(2) = 2

所以,我们可以看到在b表中没有a=3的行。我怎样才能请求db找到它?
因此,响应(一行)可能如下所示:

a(1) = 3 
b(1) =..
c(1) =..
mrzz3bfm

mrzz3bfm1#

一个选项使用 EXISTS :

SELECT a.a
FROM TableA a
WHERE NOT EXISTS (SELECT 1 FROM TableB b WHERE b.a = a.a);

另一种选择是执行反连接:

SELECT a.a
FROM TableA a
LEFT JOIN TableB b
    ON a.a = b.a
WHERE b.a IS NULL;
epfja78i

epfja78i2#

您也可以放弃联接并使用where和nested select:假设taba在vala列的后续行中保留值1,2,3,而tabb在valb列的后续行中保留值1,2,并且您只希望taba中包含值3的行您可以不使用联接来执行此操作:

SELECT  Val_A
FROM TabA  
WHERE Val_A NOT IN (SELECT Val_B FROM TabB)

相关问题