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 の使用法 » データのクエリと変更 » ジョイン:複数テーブルからのデータ検索 » ナチュラル・ジョイン

 

ビューと派生テーブルのナチュラル・ジョイン

ANSI/ISO SQL 標準の拡張機能では、ナチュラル・ジョインのどちらの側にもビューまたは派生テーブルを指定できます。次の文を考えてみます。

SELECT *
FROM View1 NATURAL JOIN View2;

View1 内のカラムは View2 内のカラムと比較されます。たとえば、両方のビューにカラム EmployeeID が出現し、それと同じ名前を持つカラムがほかになければ、生成されるジョイン条件は (View1.EmployeeID = View2.EmployeeID)(View1.EmployeeID = View2.EmployeeID) になります。

次の例で、ナチュラル・ジョインに使用するビューにはカラムだけでなく式を指定することができ、これらの式やカラムはナチュラル・ジョインでは同じように扱われることを説明します。まず、カラム x のあるビュー V を次のように作成します。

CREATE VIEW V(x) AS
SELECT R.y + 1
FROM R;

次に、このビューから派生テーブルへのナチュラル・ジョインを作成します。派生テーブルには、カラム x があり、相関名 T が付けられています。

SELECT *
FROM V NATURAL JOIN (SELECT P.y FROM P) as T(x);

このジョインは、次のクエリと同義です。

SELECT *
FROM V JOIN (SELECT P.y FROM P) as T(x) ON (V.x = T.x);