如何获取其他表中不存在的值

时间:2018-03-19 09:52:57

标签: mysql sql

我有下面提到的表格:

TABLE_1

ID     Var1   Var2
1      123    10
2      456    12
3      789    11
4      112    14

TABLE_2

ID     Value2   Freq
1      123      5
2      555      4
3      779      7
4      112      8

我想要那些Var1中没有的Table_2

输出:

ID     Var1   Var2
1      456    12
4      789    11

我试过这个:

select *
from Table_1 t1
left join Table_2 t2 on t1.Var1 = t2.Value2
where t1.Var1 not in t2.Value2

5 个答案:

答案 0 :(得分:1)

select * from Table_1
where Var1 not in (select Value2 from Table_2)

select ID, Var1, Var2
from Table_1 t1
left join Table_2 t2 on t1.Var1 = t2.Value2
where t1.Var1 is null

第二种方式可能更有效。

答案 1 :(得分:0)

您可以使用以下内容:

SELECT * FROM Table_1 WHERE NOT Var1 IN (SELECT Value2 FROM Table_2)

答案 2 :(得分:0)

您可以使用以下内容:

select * from Table_1  t1
left join Table_2  t2 on t1.var1=t2.var2
where t2.var2 is not null

答案 3 :(得分:0)

试试这个:

SELECT A.*
FROM table_1 A
WHERE NOT EXISTS (SELECT NULL
                 FROM table_2 B
                 WHERE A.Var1=B.Var1);

run on SQL Fiddle

答案 4 :(得分:0)

以下代码将为您提供预期的输出。

SELECT ID, Var1, Var2 
FROM Table_1 
WHERE  Var1 NOT IN (SELECT Value2 FROM Table_2);

如果要检索表或引用表中没有条目的列,则使用NOT IN运算符。 我附上了我的SQLFiddle。你可以检查一下。祝你好运!