在SQL中连接表。在from子句中按列链接

时间:2013-09-28 02:57:52

标签: sql join

链接多个表,
如果我在FROM子句中调用列名以不同顺序链接=,我是否有可能输出不同的结果运营商?
例如:

SELECT *    
FROM tbl1 
JOIN tbl2 on tbl1.colX = tbl2.colX
JOIN tbl3 on tbl2.colY = tbl3.colY

要清楚我在问什么,在下一个区块中,我切换了tbl2.colXtbl1.colX的位置

SELECT *    
FROM tbl1 
JOIN tbl2 on tbl2.colX = tbl1.colX
JOIN tbl3 on tbl2.colY = tbl3.colY

2 个答案:

答案 0 :(得分:2)

不,RDBMS“equals”运算符中的列顺序是100%等效。

我更喜欢第二种形式..将依赖列放在“等于”连接条件中。例如,当我加入客户订单时,join ORDER on ORDER.FK_CUSTOMER=CUSTOMER.ID

我也想调用我的主键ID和我的外键FK_<TableOrRole>。很好,很清楚。

答案 1 :(得分:1)

不,没关系。但是JOIN语句的顺序会影响结果。但是如果你关心列的顺序,你应该按照你需要的顺序指定它们(在SELECT之后和FROM之前) 此外,如果您没有使用所有联接表中的所有数据,则无需全部选择。