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