读书人

菜鸟问多表外连接有关问题

发布时间: 2013-10-06 18:25:14 作者: rapoo

初学者问多表外连接问题
假设说三个表外连接

select * from A left join B on A.x=b.x left join C on...........

A和B外连接我懂 再挂C表的时候 是A和B的虚拟合表 挂C 还是B表在挂C(因为C是写在B的后面的)

on链接条件怎么写
写成A.xx=C.xx 就是A C外连?
写成B.xx=C.xx 就是B C外连?

有些糊涂呢
[解决办法]


--写成A.xx=C.xx 就是A C外连,!
--写成B.xx=C.xx 是A及B同C外连

--也用下面的果你更清楚:
CREATE TABLE #t1 (a1 CHAR(1))
INSERT #t1 SELECT 'A'
INSERT #t1 SELECT 'B'

CREATE TABLE #t2 (a1 CHAR(1))
INSERT #t2 SELECT 'A' UNION ALL SELECT 'C'

CREATE TABLE #t3 (a1 CHAR(1))
INSERT #t3 SELECT 'A' UNION ALL SELECT 'B' UNION ALL SELECT 'C'

SELECT a.a1 a_a1,b.a1 b_a1,c.a1 c_a1
FROM #t1 a
LEFT JOIN #t2 b ON a.a1=b.a1
LEFT JOIN #t3 c ON a.a1=c.a1

SELECT a.a1 a_a1,b.a1 b_a1,c.a1 c_a1
FROM #t1 a
LEFT JOIN #t2 b ON a.a1=b.a1
LEFT JOIN #t3 c ON b.a1=c.a1

读书人网 >SQL Server

热点推荐