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

2个左连接的写法有关问题

2012-01-29 
2个左连接的写法问题让第二个表与第三个左连接构成一个子查询,然后它与第一个表左连接表定义:temp6(id,age

2个左连接的写法问题
让第二个表与第三个左连接构成一个子查询,然后它与第一个表左连接
表定义:temp6(id,age),temp7(age,age2),temp8(age2,name)
temp6是主表,age是整形字段
下面是我上次问得到的答案,但有点麻烦,因为每次都要子查询
select   temp6.*,t.*   from   temp6
left   join  
(
select   temp7.*,temp8.name   from   temp7   left   join   temp8   on   temp7.age2   =   temp8.age2
)   T
on   temp6.age   =   T.age

今天我试了一下这么写,结果一样,但不知对不对,敬请指教 :
select   *   from   temp6  
      left   join   temp7  
left   join   temp8
on   temp7.age=temp8.age2  
      on   temp6.age=temp7.age

[解决办法]

select a1.col , t.col from a1
left join
(
select a2.col , a3.col from a2 left join a3 on a2.id = a3.id
) t
on a1.id = t.id
[解决办法]
--没有问题,是正确的,不过还是标准的写法更条理一些

select *
from temp6
left join temp7 on temp6.age=temp7.age
left join temp8 on temp7.age=temp8.age2


[解决办法]
fxbird(昨天晚上我可能死了) ( ) 信誉:100 Blog 2007-03-26 13:05:14 得分: 0


to coolingpipe:
你这样写不是把temp8左连接到temp6,而不是temp7上了吗?我想左连到7上。


------------

他寫的沒有錯,因為關聯條件是on temp7.age=temp8.age2 ,沒有問題的。
[解决办法]
select *
from temp6 a
left join temp7 b on a.age=b.age
left join temp8 c on a.age=c.age2

[解决办法]
对的吧
[解决办法]
这个貌似没什么关系的。就像a+b+c 与a+(b+c)其实结果一样的

热点排行