sql多表数据查询

有时候在sql遇到一次查询多张表的全部数据例如:创建一张虚拟表A ,表A中需要有表B和表C的全部数据(表B和表C并集,如图)

有两种方法一种是使用:

1):union,不过这种查询速度比较慢

/* B、C 公共部分 */ 
SELECT * FROM      B JOIN  C ON B.x = C.x

UNION

/*B独有部分*/
 SELECT * FROM      B WHERE   B.x NOT IN  
 (SELECT * FROM      B JOIN  C ON B.x = C.x)

UNION

/*C独有部分*/ 
 SELECT * FROM     C WHERE   C.x NOT IN   
(SELECT * FROM      B JOIN  C ON B.x = C.x)

2): full join(FULL OUTER JOIN),但是个人感觉full join 有点。。。。

Select * From B FULL OUTER JOIN C

 

posted @ 2017-10-11 10:59  楚景然  阅读(619)  评论(0编辑  收藏  举报