Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データのクエリと変更 » ジョイン:複数テーブルからのデータ検索 » ジョイン操作

 

ジョインしたテーブル

SQL Anywhere では、次のようなジョイン条件の指定をサポートしています。

  • CROSS JOIN (クロス・ジョイン)   2 つのテーブルにこのタイプのジョインを指定すると、両方のテーブルにあるローの可能な組み合わせがすべて生成されます。結果セットのサイズは、1 番目のテーブルにあるローの数と 2 番目のテーブルにあるローの数を乗算したものです。クロス・ジョインは、直積とも呼ばれます。クロス・ジョインでは ON 句を使用できません。

  • KEY JOIN (キー・ジョイン)   このタイプのジョイン条件では、テーブル間の外部キー関係が使用されます。ジョイン・タイプ (INNER、OUTER など) を指定しないで JOIN キーワードを使用する場合や、ON 句がない場合は、キー・ジョインはデフォルトになります。

  • NATURAL JOIN (ナチュラル・ジョイン)   このジョインでは、同じ名前のカラムに基づいて、ジョイン条件が自動的に生成されます。

  • ON 句を使用したジョイン   ON 句内にジョイン条件を明示的に指定すると、このタイプのジョインになります。これをキー・ジョインまたはナチュラル・ジョインと併用すると、ジョイン条件には生成されたジョイン条件と明示的ジョイン条件の両方が含まれます。KEY や NATURAL の付かない JOIN キーワードと併用すると、生成されるジョイン条件はありません。明示的なジョイン条件 (ON 句)を参照してください。

内部ジョインと外部ジョイン

キー・ジョイン、ナチュラル・ジョイン、ON 句付きジョインは、INNER、LEFT OUTER、RIGHT OUTER、FULL OUTER を指定して修飾することもできます。デフォルトは INNER です。LEFT、RIGHT、FULL を使う場合、キーワード OUTER はオプションです。

内部ジョインでは、結果の各ローがジョイン条件を満たします。

左外部ジョインまたは右外部ジョインでは、テーブルのどちらか一方のすべてのローの値が保護されます。もう一方のテーブルでは、ジョイン条件を満たさないローに NULL が返されます。たとえば右外部ジョインでは、右側が保護され、左側に NULL が入力されます。

全外部ジョインでは、両方のテーブルのすべてのローが保護され、ジョイン条件を満たさないローに NULL が入ります。