我们遇到了以下"问题".我喜欢用以下文字写作:
SELECT Id, Name FROM Table1 JOIN Table2 ON Table1.FK1 = Table2.FK1
但我的一位同事使用:
SELECT Id, Name FROM Table1 JOIN Table2 ON Table1.FK1 = Table2.FK1
这是最好的做法吗?我认为如果所有使用的表都是对齐的话会更方便.
我更喜欢第一个
我们实际上会这样做:
SELECT Id, Name FROM Table1 JOIN Table2 ON Table2.FK1 = Table2.FK1
我工作的公司有一个使用对象模型生成sql的应用程序.它在大多数情况下使用第二种语法生成它.所以很多联接然后是条件.当你有很多表时,尝试解密哪个条件适用于哪个表是非常令人沮丧的.
所以我更喜欢把ON子句放在我加入的表中.它可以更容易地告诉您用于表的连接子句以及作为连接语句一部分的条件子句.让你的联盟正确是成功的一半.我也更喜欢括号.
SELECT primarytable.whatever FROM primarytable INNER JOIN secondarytable ON (primarytable.primarykey = secondarytable.foreignkey) INNER JOIN othertable ON (primarytable.foreignkey = othertable.primarykey AND othertable.somefield = 1) LEFT OUTER JOIN outertable ON (secondarytable.foreignkey = outertable.primarykey) WHERE primarytable.somefield IS NOT NULL