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);