SQL Anywhere では、ジョインできるテーブルの数に制限はありません。
3 つ以上のテーブルをジョインする場合、カッコはオプションです。カッコを使用しない場合には、SQL Anywhere では文が左から右に評価されます。そのため、A JOIN B JOIN C
は ( A JOIN B ) JOIN C
と同じです。また、次の 2 つの SELECT 文は同じです。
SELECT * FROM A JOIN B JOIN C JOIN D; |
SELECT * FROM ( ( A JOIN B ) JOIN C ) JOIN D; |
3 つ以上のテーブルをジョインした場合、そのジョインにはテーブル式が含まれます。A JOIN B JOIN C
の例では、テーブル式 A JOIN B
が C とジョインされます。つまり、概念上は A と B がジョインされ、その結果が C にジョインされます。
テーブル式に外部ジョインが含まれるときは、ジョインの順序が重要になります。たとえば、A JOIN B LEFT OUTER JOIN C
は、(A JOIN B) LEFT OUTER JOIN C
と解釈されます。つまり、テーブル式 A JOIN B
が C にジョインされます。このとき、テーブル式 A JOIN B
は保護され、テーブル C には NULL が入力されます。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |