web-dev-qa-db-ja.com

内部結合は等結合と同じですか?

内部結合と等結合が同じかどうか教えてもらえますか?

38
user578816

「内部結合」は、一般的な用語で「等結合」と同じではありません。

'equi-join' は、等価演算子または同等の演算子を使用してテーブルを結合することを意味します。同等性のみを使用する場合は、外部結合を「等結合」と呼びます(他の人は同意しない場合があります)。

'inner join''outer join' とは反対で、一致する値がない場合に2つのセットを結合する方法を決定します。

43
user533832

これに関するこの記事を見つけましたが、あなたの質問に答えていると思います。

それらは無関係です。

行を一致させる条件は、2つの値(結合される各テーブルから1つ)の等価性に基づいているため、ほとんどすべての結合は等結合です。したがって、それが等価結合になります。ON条件は等価です。これには、内部結合と3種類すべての外部結合が含まれます。

一方、内部結合は、行に一致する等価性、または他の条件に完全に基づくことができます。等結合でない場合、通常、シータ結合と呼ばれますが、正確には、等結合は可能なシータ結合の1つにすぎません。他のシータ結合では、比較演算子として「より小さい」、「より小さい」または「等しい」などが使用されます。

記事全体を読む

29
CloudyMarble

答えはいいえだ。

等結合は、明示的な演算子=を使用して、2つのテーブルの2つの列を一致させるために使用されます。

例:

select *
  from table T1, table2 T2
  where T1.column_name1 = T2.column_name2

内部結合は、2つのテーブル間のクロス積を取得し、両方のテーブルのすべてのレコードを結合するために使用されます。正しい結果を得るには、等結合または1つの自然結合を使用できます(テーブル間の列名は同じでなければなりません)

等結合(明示的および暗黙的)の使用

select *
  from table T1 INNER JOIN table2 T2
  on T1.column_name = T2.column_name

select *
  from table T1, table2 T2
  where T1.column_name = T2.column_name

または自然結合を使用する

select *
  from table T1 NATURAL JOIN table2 T2

HTH

8
Osy

簡単に言えば:等結合は、内部結合の可能なタイプです

より詳細な説明:

内部結合は、特定の条件が満たされた結合テーブルから行のみを返す結合です。この条件は等しい場合があります。つまり、 equi-join ;になります。条件が平等の条件ではない場合-これは不平等、より大きい、より小さい、間にあるなどです-より正確にtheta-joinと呼ばれる nonequi-join があります。

そのような条件が必ずしも満たされることを望まない場合は、外部結合(返されるすべてのテーブルのすべての行)、左結合(返される左側のテーブルのすべての行、右側のテーブルにのみ一致)、右側の結合(右側のすべての行返されたテーブル、左側のテーブルのみに一致)。

6
Luca Tampellini

答えは「いいえ」です。読者にとってソートは簡単です。

内部結合は、結合条件に等号(=)と他の演算子(<、>、<>など)を持つことができます。

等結合結合条件には等号(=)演算子のみがあります。

等結合は、内部結合、左外部結合、右外部結合にすることができます

4
Shumi Gupta

違いを出さなければならない場合、私はここでそれがDB2でそれをテストしたと思う。 「等結合」では、結合するテーブルの比較列を選択する必要がありますが、内部結合では強制ではありません。例:-

Select k.id,k.name FROM customer k
inner join  dealer on(
k.id =dealer.id
)

ここでは、結果の行は2列の行のみです

id    name

しかし、等結合では、他のテーブルの列も選択する必要があると思います

Select k.id,k.name,d.id FROM customer k,dealer d
where
k.id =d.id

そして、これは3列の行になります、ここでディーラーの望ましくない比較列を持つことはできません(あなたがそれを望まない場合でも)、行は次のようになります

 id(from customer) name(from Customer) id(from dealer)

これはあなたの質問には当てはまらないかもしれませんが、大きな違いの1つかもしれません。

1