SQL 使用 minus 函数从特定列中删除行,但返回 table 中的所有列
SQL using minus function to eliminate rows from specific columns but returning all columns from table
我正在尝试 return 数据库中的所有列,其中某些列中的某些行已被删除。有什么办法可以做到这一点?我试过使用这样的代码,但我不确定我缺少什么来完成这项工作
Select * from table1
where (select column1 from table1
minus select column1 from table2);
您可以使用 WHERE NOT EXISTS
:
Select T1.*
From Table1 T1
Where Not Exists
(
Select *
From Table2 T2
Where T2.Column1 = T1.Column1
)
或者,您可以使用 LEFT OUTER JOIN
:
Select T1.*
From Table1 T1
Left Join Table2 T2 On T2.Column1 = T1.Column1
Where T2.Column1 Is Null
甚至 WHERE NOT IN
:
Select *
From Table1
Where Column1 Not In
(
Select Column1
From Table2
)
我会推荐 WHERE NOT EXISTS
方法,但要修复问题中的查询,您只需要添加 WHERE IN
:
Select *
From Table1
Where Column1 In
(
Select Column1
From Table1
Minus
Select Column1
From Table2
)
试试这个:
select * from table1 where column1 in
(select 来自表 1 的列 1
减
select 来自表 2 的列 1);
我正在尝试 return 数据库中的所有列,其中某些列中的某些行已被删除。有什么办法可以做到这一点?我试过使用这样的代码,但我不确定我缺少什么来完成这项工作
Select * from table1
where (select column1 from table1
minus select column1 from table2);
您可以使用 WHERE NOT EXISTS
:
Select T1.*
From Table1 T1
Where Not Exists
(
Select *
From Table2 T2
Where T2.Column1 = T1.Column1
)
或者,您可以使用 LEFT OUTER JOIN
:
Select T1.*
From Table1 T1
Left Join Table2 T2 On T2.Column1 = T1.Column1
Where T2.Column1 Is Null
甚至 WHERE NOT IN
:
Select *
From Table1
Where Column1 Not In
(
Select Column1
From Table2
)
我会推荐 WHERE NOT EXISTS
方法,但要修复问题中的查询,您只需要添加 WHERE IN
:
Select *
From Table1
Where Column1 In
(
Select Column1
From Table1
Minus
Select Column1
From Table2
)
试试这个: select * from table1 where column1 in (select 来自表 1 的列 1 减 select 来自表 2 的列 1);