2

残念ながら、現時点では Ingres データベースにアクセスできません。標準 SQL に適用される内部結合構文が Ingres でも​​適用されるかどうか疑問に思っています。内部結合に相当するものについても疑問に思っています。

たとえば、次の 2 つの SQL ステートメントは有効ですか?

ステートメント 1:

SELECT a.Value1,
       a.Value2,
       b.Value3
FROM   Tabletype1 a, Tabletype2 b, Tabletype3 c
WHERE a.Value1 = b.Value4
AND   b.Tabletype3_Num = c.Tabletype3_Num
AND  p.Value5 = 'Randomvalue'
AND b.Value3 > 20
      AND (a.Tabletype1Format = 'Random' OR a.Tabletype1Format = 'Random1')

ステートメント 2:

SELECT a.Value1,
       a.Value2,
       b.Value3
FROM   Tabletype1 a
       INNER JOIN Tabletype2 b
            ON  a.Value1 = b.Value4
       INNER JOIN Tabletype3 c
            ON  b.Tabletype3_Num = c.Tabletype3_Num
WHERE  c.Value5 = 'Randomvalue'
       AND b.Value3 > 20
       AND (a.Tabletype1Format = 'Random' OR a.Tabletype1Format = 'Random1')
4

2 に答える 2

4

OPが実際に尋ねた質問に答えて、Ingresは間違いなく両方の形式の結合仕様を完全にサポートしています.

つまり、私の結論は、あなたの状況で望ましいと思うことをすることです。それはうまくいきます。

于 2011-01-17T11:17:15.323 に答える
3

どちらの形式も Ingres で問題なく動作しますが、

  1. 可読性
  2. 明瞭さ
  3. 結合が実際に行われる場所をクエリ オプティマイザーが認識できるようにするため

この質問は、 SQL 内部結合構文に非常に似ています

于 2011-01-16T21:24:36.003 に答える