链接多个表,
如果我在FROM
子句中调用列名以不同顺序链接=
,我是否有可能输出不同的结果运营商?
例如:
SELECT *
FROM tbl1
JOIN tbl2 on tbl1.colX = tbl2.colX
JOIN tbl3 on tbl2.colY = tbl3.colY
要清楚我在问什么,在下一个区块中,我切换了tbl2.colX
和tbl1.colX
的位置
SELECT *
FROM tbl1
JOIN tbl2 on tbl2.colX = tbl1.colX
JOIN tbl3 on tbl2.colY = tbl3.colY
答案 0 :(得分:2)
不,RDBMS“equals”运算符中的列顺序是100%等效。
我更喜欢第二种形式..将依赖列放在“等于”连接条件中。例如,当我加入客户订单时,join ORDER on ORDER.FK_CUSTOMER=CUSTOMER.ID
。
我也想调用我的主键ID
和我的外键FK_<TableOrRole>
。很好,很清楚。
答案 1 :(得分:1)
不,没关系。但是JOIN语句的顺序会影响结果。但是如果你关心列的顺序,你应该按照你需要的顺序指定它们(在SELECT之后和FROM之前) 此外,如果您没有使用所有联接表中的所有数据,则无需全部选择。