SQLでJOIN文を設定したい
キーワード:データベース,SQLウィザード,JOIN
概要
複数のテーブルからデータを抽出したい場合は、データ抽出の際にSQLでJOIN文を設定します。JOIN文は、SQL文をウィザード形式で作成することができるSQLウィザードを使用して記述することができます。
サンプルプロジェクトの説明
データベースの2つのテーブルからデータ抽出を行い、結果をCSVファイルに出力します。サンプルプロジェクトでは、INNER JOIN文を使用しています。

処理の流れ
サンプルプロジェクトの処理の流れは以下の通りです。- Accessアダプタの「検索系SQL実行処理」でSQL文を用いてデータを読み取ります。
- 「CSVファイル書き込み処理」で出力ファイルに書き込みます。

- LEFT OUTER JOIN文およびRIGHT OUTER JOIN文を使用した場合の出力結果も同梱しています。
LEFT OUTER JOIN文の出力結果は「LeftOuterJoin.csv」、RIGHT OUTER JOIN文の出力結果は「RightOuterJoin.csv」を参照してください。
ポイントとなる機能
名前 | 説明 | ツールパレット上の場所 |
---|---|---|
検索系SQL実行処理 | SQL文を用いてデータを読み取ります。 | 「データベース」-「Access」-「検索系SQL実行」 |
処理のポイント
SQLウィザードを使用してJOIN文を記述します。SQLウィザードの起動は、検索系SQL実行処理のプロパティ設定ダイアログで [SQLウィザードの起動]を押下して行います。
サンプルプロジェクトの使用方法
上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。サンプルプロジェクトのダウンロード | 逆引きリファレンス シナリオ005のサンプルプロジェクト |
---|
- サンプルプロジェクトの展開
サンプルプロジェクトファイル「rl_reference_005.zip」を展開します。 - プロジェクトのアップロード
「rl_reference_005.zip」を展開後に作成される「rl_reference_005プロジェクト」ディレクトリがプロジェクトファイルとなります。
DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_005プロジェクト」をアップロードしてください。 - サンプルデータの準備
「rl_reference_005.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
$DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。 - サンプルデータベースの準備
共通サンプルDBの「sample.zip」を展開し、「Sample.mdb」をODBCのデータソースに登録します。 - グローバルリソースの設定
コントロールパネルの[グローバルリソースの設定]から、[新しいグローバルリソースの追加]を選択し、Accessのグローバルリソースを追加します。
グローバルリソースの設定方法については、DataSpider Servistaヘルプの「グローバルリソースのプロパティ」を参照してください。
スクリプトの作成手順

- デザイナのツールパレット「データベース」-「Access」-「検索系SQL実行」から、検索系SQL実行処理をスクリプトキャンバスに配置します。
- 検索系SQL実行処理の設定は、以下のように行います。
[必須設定]タブ
- [SQL文]は、SQLウィザードを使用して設定します。
検索系SQL実行処理のプロパティ設定ダイアログで[SQLウィザードの起動]を押下し、以下のように設定します。[基本情報の設定]
[結合条件のプロパティ]
処理のポイント
- 「結合条件のプロパティ」画面は、テーブルを結合しているマッピングリンクを右クリックし、メニューより[プロパティ]を選択して表示します。
- INNER JOIN文を記述する場合は一番上のラジオボタンを選択します。
なお、LEFT OUTER JOIN文を記述する場合は真ん中のラジオボタン、RIGHT OUTER JOIN文を記述する場合は一番下のラジオボタンを選択します。
[詳細設定]
[SQLステートメント内容とテスト実行]
処理のポイント
- 「結合条件のプロパティ」画面で真ん中(LEFT OUTER JOIN文)および一番下(RIGHT OUTER JOIN文)のラジオボタンを選択した場合の記述内容は以下となります。
LEFT OUTER JOIN文
SELECT
[企業マスタテーブル].会社名,
[企業別売上テーブル].受注ID,
[企業別売上テーブル].会社コード,
[企業別売上テーブル].伝票番号,
[企業別売上テーブル].受注年,
[企業別売上テーブル].受注月,
[企業別売上テーブル].受注日,
[企業別売上テーブル].受注金額
FROM (
[企業マスタテーブル]
LEFT OUTER JOIN [企業別売上テーブル] ON [企業マスタテーブル].会社コード = [企業別売上テーブル].会社コード )
RIGHT OUTER JOIN文
SELECT
[企業マスタテーブル].会社名,
[企業別売上テーブル].受注ID,
[企業別売上テーブル].会社コード,
[企業別売上テーブル].伝票番号,
[企業別売上テーブル].受注年,
[企業別売上テーブル].受注月,
[企業別売上テーブル].受注日,
[企業別売上テーブル].受注金額
FROM (
[企業マスタテーブル]
RIGHT OUTER JOIN [企業別売上テーブル] ON [企業マスタテーブル].会社コード = [企業別売上テーブル].会社コード )
- 検索系SQL実行処理の設定は、以下のように行います。
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
- CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ
- CSVファイル書き込み処理の設定は、以下のように行います。
- スクリプトを実行し、正常終了すれば成功です。