0

単純な内部結合

select * from table1 a
inner join 
dbo.table2 b
on a.inventory_id = b.inventory_id

このように置くのは素晴らしく直感的ではないでしょうか?

select * from table1 a
inner join 
dbo.table2 b
on inventory_id

同等の簡潔なアプローチはありますか?

ありがとう!

4

3 に答える 3

2

PostgreSQL、MySQL、または Oracle を使用していた場合は、Natural Joinを使用できます。

   select *
     from table1 a
  natural join table2 b

質問のタイトルに「左」が含まれている理由はわかりませんが、natural left join同様に行うことができます。

残念ながら、 のために SQL Server を使用していると思います。dbo.いいえ、ON条件は必須です。

于 2012-11-08T19:33:45.913 に答える
1

自然な結合はどうですか:

select *
from table1 a
natural join dbo.table2 b

ただし、RDBMS ではサポートされていない可能性があるため、クエリで結合の種類と条件を常に指定することをお勧めします。長期的には、はるかに保守性が高くなります。

dbo.ただし、SQL Server を使用していると推測していますが、そこではサポートされていません。詳細については、こちらを参照してください。

編集:
SQL Server ではサポートされていませんが、注目に値する別の可能性があります。結合条件が明確に指定されているため、これは実際に使用する価値があります。詳細はこちら

select *
from table1
inner join dbo.table2 using (inventory_id)
于 2012-11-08T19:33:31.063 に答える
0

ANSI 標準を使用したくない場合はJOIN、暗黙的な構文を使用します。

select * from table1 a, table2 b
where a.inventory_id = b.inventory_id
于 2012-11-08T19:26:31.470 に答える