Tips

SQL JOINの実行

日付2008/10/20
ID08-043
バージョン
プラットフォーム

4D v11 SQLでは、Begin SQL/End SQLタグを使用することにより、SQLステートメントをメソッドの中に記述できるようになりました。4Dで現在サポートされていない構文にJOINが挙げられます。

JOINは事実上テーブル間にリレーションを作成する構文です。JOINは、既存のリレーションがなくても構わないので便利です。4Dの場合、JOINの代わりにふたつのテーブルからのSELECT文とWHERE句を使用することにより、JOINを実行することができます。つまり、WHERE句で異なるテーブルのフィールド同士を等号で結ぶことにより、JOINを表現することができます。

次のコードは、CUSTOMERSテーブルおよびINVOICESテーブルより、CUSTOMERSテーブルのIDフィールドがINVOICESテーブルのCUSTIDフィールドと合致するレコードを抽出します。これは両テーブル間にリレーションを作成することに相当します。この例ではさらに特定の姓名に合致する顧客をクエリしているため、最終的にその顧客の請求だけが返されることになります。

BEGIN SQL
SELECT *
FROM CUSTOMERS, INVOICES
WHERE CUSTOMERS.ID = INVOICES.CUSTID
& CUSTOMERS.NAME = 'Josh Fletcher';
END SQL

SELECT文のWHERE句を利用してJOINを模倣する様々なサンプルコードは、次のリンク先でも紹介されています。


http://www.4d.com/docs/CMJ/CMJ18432.HTM