请教个sql的问题,这两种联查的区别

零点三六 发布于 2013/02/25 14:21
阅读 157
收藏 1

1:

select
D.realname as d_realname,D.loginname as d_loginname,D.email as d_email,
E.realname as t_realname,E.loginname as t_loginname,E.email as t_email
FROM 
Jobplan AS A ,Project AS B,User AS C,User AS D ,User AS E
....
2:

使用join ,left join等等

这两种书写方式有什么区别吗?

以下是问题补充:

@零点三六:两种写法的效果都一样 (2013/02/25 17:20)
加载中
0
excepiton
excepiton

第一个是inner join ,第二个是left join 。

第一个是两个表bid想等的记录返回

第二个是a表全返回,b表中bid和a表的bid相等的才返回

自己建个表写一下就可以了

excepiton
excepiton
回复 @amar : 第一种是oracle支持的写法,第二种是SQL标准写法,都可以。Oracle8还是Oracle9之前只支持第一种。
零点三六
零点三六
谢谢回答,我想知道的是 select * from a , b where a.bid = b.id(+) 与 select * from a left join b on a.bid = b.id 诸如此类的语句 , 单位里有的同事用第一种方法,有的用第二张,效果都一样, 谁都不知道有什么区别
0
零点三六
零点三六

还是描述得不够 , 就是

select * from a , b where a.bid = b.id

select * from a left join b on a.bid = b.id

有什么区别啊

魔力猫
魔力猫
同样都是内链接或者外联结,这种情况下是没有影响的。
零点三六
零点三六
回复 @魔力猫 : 追问一下 , 性能上有差异吗?
魔力猫
魔力猫
这是SQL连接的两种写法,a.bid=b.id是最老的写法,join是相对新一些的写法。
0
零点三六
零点三六
感谢上面两位的回答 , 知道没有差异就放心啦
0
魔力猫
魔力猫
但是目前普遍建议使用Join,这样表连接和过滤比老写法清晰
返回顶部
顶部