0

链接多个表,如果我通过操作员在子句
中以不同的顺序调用列名,是否有可能输出不同的结果?例如: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
4

2 回答 2

2

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

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

我也喜欢调用我的主键ID和外键FK_<TableOrRole>。好看又清晰。

于 2013-09-28T02:59:31.650 回答
1

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

于 2013-09-28T03:26:56.587 回答