SQL ingres синтаксис - PullRequest
       5

SQL ingres синтаксис

2 голосов
/ 17 января 2011

К сожалению, в настоящее время у меня нет доступа к базе данных Ingres, и мне просто интересно, применяется ли синтаксис внутреннего соединения, который применяется в стандартном SQL, в Ingres?Мне также интересно узнать об эквиваленте внутреннего соединения.

Например, допустимы ли следующие два оператора 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')

Ответы [ 2 ]

4 голосов
/ 17 января 2011

В ответ на вопрос, который фактически задал ОП, Ingres, безусловно, определенно полностью поддерживает ОБА формы спецификации соединения, и в каждом случае, который я когда-либо удосужился рассмотреть, он предлагает точно такой же план запроса. .

Итак, мой основной ответ: делай то, что ты считаешь предпочтительным в своей ситуации. Это будет работать нормально.

3 голосов
/ 17 января 2011

Обе формы отлично работают в Ingres, хотя вы бы оценили, что синтаксис ANSI SQL92 предпочтительнее для

  1. читаемость
  2. ясность
  3. , чтобы помочь оптимизатору запросовзнать, где на самом деле происходит соединение

Этот вопрос очень похож на Синтаксис внутреннего соединения SQL

...