当前位置:  开发笔记 > 数据库 > 正文

SQL选择约定

如何解决《SQL选择约定》经验,为你挑选了3个好方法。

我们遇到了以下"问题".我喜欢用以下文字写作:

SELECT  Id, Name
FROM    Table1
JOIN    Table2 ON Table1.FK1 = Table2.FK1

但我的一位同事使用:

SELECT  Id, Name
FROM    Table1 JOIN Table2 
ON      Table1.FK1 = Table2.FK1

这是最好的做法吗?我认为如果所有使用的表都是对齐的话会更方便.



1> SQLMenace..:

我更喜欢第一个



2> AwesomeTown..:

我们实际上会这样做:

SELECT Id, Name
    FROM Table1
    JOIN Table2 
        ON Table2.FK1 = Table2.FK1



3> Will Rickard..:

我工作的公司有一个使用对象模型生成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

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有