在连接sqlserver 2008中使用“ON”时命令是否重要

时间:2011-02-10 17:02:04

标签: sql-server-2005

使用任何联接编写查询时,确定On所基于的哪一方

实施例

select * from customer C
join Address ON A.CustomerId=C.CustomerID  -- would it make a difference if I did    ON    C.CustomerId=A.CustomerID 
where c.CustomerId=1

左或右连接怎么样?

非常感谢

3 个答案:

答案 0 :(得分:2)

没有。你还在加入这两张桌子。我认为最好将连接表放在右手边。

答案 1 :(得分:0)

重要吗?否。

LEFT vs RIGHT - 取决于您想要的结果。

SELECT * FROM A LEFT JOIN B ON A.aid=b.aid

将为您提供A的所有结果,无论它们是否在B中具有匹配的记录 - 因此对于B不匹配的记录,从B返回的字段将为NULL。

SELECT * FROM A RIGHT JOIN B ON ...

将为您提供B中的所有记录以及A ...

提供的字段中空值的可能性

答案 2 :(得分:0)

平等是一种可交换的操作。 A=BB=A相同,因此JOIN子句中的特定顺序无关紧要。

如果您正在进行不等式测试,<>,则排序很重要。 B>A不一样A>B(同样适用于A<BB<A