2011-01-16 9 views
2

残念ながら、私は現時点でIngresデータベースにアクセスできないが、標準SQLにも適用される内部結合構文も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') 
+0

コードをコードとしてインデントしてください。それと同じように入力し、各フラグメントを強調表示してから、 '' {} ''と記された'インデント 'ボタンをクリックします。 –

+0

** gotoへの暗唱では、**コンマでテーブルを結合することが悪いですね** –

答えて

4

に非常に似て、アングルは絶対に、確かに、間違いなく完全にサポートしています知っていますどちらもBOTH形式の結合仕様であり、すべての場合において、私は今見たことがありませんでした。まったく同じクエリプランが出てきます。

私の根本的な答えはあなたの状況に適していると思います。それは正常に動作します。

+0

ここで参照するのは、ingresを使用したSQL構文の詳細なガイドです.JOINについては、http://www.r20.nl/TheSQLGuidetoIngres-AppendixA.pdfを参照してください。 –

3

あなたはSQL92 ANSI構文は

  1. 読みやすくするために、より好ましいいただければ幸いですが、両方の形式は、アングルで正常に動作
  2. 透明度
  3. 参加は本当に

起こるところクエリオプティマイザを支援する

  • は、この質問はOPが実際に尋ねた質問に応えてSQL Inner Join syntax

  • +0

    SQL92 ANSIの構文では、内部結合は....構文ですか?この規格が確かにイングランドの「標準」規格であると確信していますか? – santdrog

    +0

    これはANSI規格であり、多少意味はありませんが、明快さと予測可能性の基準です。リンクされた質問が述べるように、Ingres/Oracleの開発者はANSI以外の構文の傾向があるかもしれませんが、一般的には出ています。 – RichardTheKiwi

    +0

    私はリンクを認識していますが、残念ながら何も確認していません。したがって、ステートメント2の構文がイングレスのデフォルト実装に確実に準拠していることを確認できますか? – santdrog