sql多表数据查询

时间:2023-03-10 00:57:32
sql多表数据查询

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

sql多表数据查询

有两种方法一种是使用:

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