首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2013-10-06 
初学者问多表外连接问题假设说三个表外连接select * from A left join B on A.xb.xleft join C on.......

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

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

热点排行