SQL——minus、union 、interspect


 

 

 

 

minus、union 、interspect

 

 

minus和not in的区别

minus可以寻找左边表存在右边表不存在的数据,即左边表减去两表的差集。

 

minus可以实现not in(使用not in注意空值)的所有功能,

例:

select * from sysdba.origin_table o where o. not in (select id from sysdba.destination_table);

(select id from SYSDBA.ORIGIN_TABLE ) minus (select id from SYSDBA.DESTINATION_TABLE);

但是多了一个功能即寻找所有字段的差集

(select * from SYSDBA.ORIGIN_TABLE ) minus (select * from SYSDBA.DESTINATION_TABLE);

假设有这两张表SQL——minus、union 、interspect

SQL——minus、union 、interspect

 

select * from sysdba.origin_table o where o.id not in (select id from sysdba.destination_table);

 

SQL——minus、union 、interspect

多出来的功能:所有字段的比对:

(select * from SYSDBA.ORIGIN_TABLE ) minus (select * from SYSDBA.DESTINATION_TABLE);

SQL——minus、union 、interspect

其实想想也容易明白,一个叫差集,偏重于集合即所有字段的数据,那么交集和in关键字也是一样的道理。

 

为什么不建议使用外键?

https://zhuanlan.zhihu.com/p/62020571

 

SQL——minus、union 、interspect

上一篇:oracle 杀LOCAL=NO远程连接进程


下一篇:MySql查询报错:Illegal mix of collations