1


0

以下の「問題」が発生しました。 私は次の文章を使うのが好きです。

SELECT ID、名前FROM Table1 JOIN Table2 ON Table1.FK1 = Table2.FK1

しかし私の同僚は次のものを使います。

SELECT ID、名前FROM Table1 JOIN Table2 ON Table1.FK1 = Table2.FK1

これに対するベストプラクティスはありますか? すべての使用済みテーブルが揃っていれば、もっと便利だと思います。

13 Answer


10


私は最初が好き


8


実際には

SELECT ID、名前FROM Table1 JOIN Table2 ON Table2.FK1 = Table2.FK1


5


私が働いている会社は、SQLを生成するためにオブジェクトモデルを使用するアプリを持っています。 ほとんどの場合、2番目の構文で生成​​されます。 たくさんの結合があり、それから条件が変わります。 たくさんのテーブルがあるときに、どのテーブルにどのon条件が適用されるかを試して解読するのは非常にイライラすることです。

だから私は参加しているテーブルと一緒にON句を置くことを好む。 テーブルにどのjoin句を使用したか、そしてjoin文の一部になっている条件句を簡単に判断できます。 そして、あなたの参加を正しくすることは、戦いの半分です。 括弧も好きです。

SELECT primarytable.whatever from FROM primarytable内部結合secondarytable ON(primarytable.primarykey = secondarytable.foreignkey)内部結合その他のON(primarytable.foreignkey = othertable.primarykeyおよびothertable.somefield = 1) primarykey)WHERE primarytable.somefieldがNULLではありません


2


SELECT ID、名前FROM Table1 JOIN Table2 ON Table2.FK1 = Table2.FK1

私はこれが好きです。 そしてビール。


2


https://stackoverflow.com/questions/537258/sql-select-convention/537284#537284[John Price]のスタイルに似たものを使用します。
Fooとして(Idを選択し、Table1からNameをTable2にTable2に結合します。FK= Table1.PKおよびTable2.Foo = Table1.Bar Table3にTable3を結合します。 > 1およびTable1.Bar <100)、バー(...) バーから*を選択します。

いくつかのコメント:

論理ブロックの適切な字下げ:_join_は_from_の内側に入り、_from_は_select_の内側に入ります

_on_は適切なKのために行末でハングします _with_かっこについても同じです。

そしてまた

コードの色付けを考えると、私は小文字のキーワードが好きです。


1


私のスタイル:

select c.Id, c.Name
from Parent p
join Child c on c.ParentID = p.Id
where p.Id = 123
  • 長い選択リストがある場合、各列を書く傾向があります または、1つのテーブルのすべての列を1行に、別のテーブルのすべての列を別の行に書き込みます。

  • 「+ on 」または「 where +」に条件の長いリストがあった場合、私は 各条件を独自の行に書き込む傾向があります。

リアルWTF:

  • あなたはあなたのテーブルをエイリアスしていません。

  • あなたはSQLをすべて大文字で書いています。 読めません。

  • 初歩的な構文の強調表示を備えたエディターを使用していないため、 どの単語が何を意味するのかを判断するために、アライメントに頼らざるを得ません。


0


私はそれらのうちの最初のものが好きです。 しかしながら、私たちのフォーマットはより多くの空白を持っているので、我々は括弧を使うことを確認します。

SELECT x.Id、MAX(y.Sales)FROM [dbo]。[表1] x内部結合[dbo]。[表2] y ON Table1.Id = Table2.Id WHERE x.Id = 100 AND x.Name = ' xによってカウントされるFoo 'グループ(*)> 1があります

開発者は通常、最初は苦労しています(絶対に投票しないでください)。 :))しかし、フォーマットはほとんどの人にとって大きくなる傾向があり、可視性は非常に役立ちます。 それぞれの重要な条項ははっきりと見えます。

編集:正義の答えに従って、テーブルをエイリアスする。 私はそれをするために、ちょうどこの答えを忘れました。 すべての上限に関して、それは私の頃からSQLの強調表示がないことの習慣です。オプションです。


0


私は最初のものを好みます、しかし私は多くのコードフォーマッターが自動的に2番目にフォーマットすることがわかりました。


0


私は最初のバージョンを好むが、それがFROM句の一部であることを示すためにJOIN句にいくらかのインデントをつけている。

私はこのhttp://www.devguru.com/technologies/sqlsyntax / quick ref / sql_syntax_intro.html [article]を見つけました。それはいくつかのかなり良いガイドラインを与えます。


0


私は最初の方が好きです - それは私が必要に応じて結合されたテーブルを簡単にコメントアウトすることを可能にします。