使用任何联接编写查询时,确定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
左或右连接怎么样?
非常感谢
答案 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=B
与B=A
相同,因此JOIN子句中的特定顺序无关紧要。
如果您正在进行不等式测试,<
和>
,则排序很重要。 B>A
不一样A>B
(同样适用于A<B
和B<A
)