※ ChatGPTを利用し、要約された質問です(原文:Accessで複数テーブルのJoin)
Accessで複数テーブルのJoin
このQ&Aのポイント
Accessを使用して複数のテーブルを結合する方法について質問があります。
テーブル間の結合において、AccessはSQLを自動生成しますが、テーブルが複数ある場合、結合する順番がわかりにくいです。
具体的なSQLの書き方を教えてほしいという質問です。
次のようなテーブル(T1~T4)とクエリ(Q1~Q2)があります。
クエリの表で囲っているものはAccessのQBEを表しています。
その下はAccessが自動生成したSQLです。
Accessがある場合はいいのですが、ない場合、いきなりSQLを
書かないといけないわけですが、どのような順番に並べていって
いいのか整理がつきません。
4つ以上になるとさっぱりです。
何かヒントをいただけませんでしょうか?
T1:売上表[売上No、日付、顧客CD]
T2:顧客表[顧客CD、顧客名]
T3:売上明細[ID、売上No、連番、商品CD、数量]
T4:商品表[商品CD、商品名、単価]
Q1:
┌────────────────┐
│日付 │ 商品名│単価 │数量 │
├────────────────│
│売上表│商品表│商品表│売上明細│
└────────────────┘
SELECT 売上表.日付, 商品表.商品名, 商品表.単価, 売上明細.数量
FROM 商品表 INNER JOIN (売上表 INNER JOIN 売上明細 ON 売上表.売上No = 売上明細.売上No) ON 商品表.商品CD = 売上明細.商品CD;
Q2:
┌────────────────────┐
│日付 │ 顧客名│商品名│単価 │数量 │
├────────────────────│
│売上表│顧客表│商品表│商品表│売上明細│
└────────────────────┘
SELECT 売上表.日付, 顧客表.顧客名, 商品表.商品名, 商品表.単価, 売上明細.数量
FROM (商品表 INNER JOIN (売上表 INNER JOIN 売上明細 ON 売上表.売上No = 売上明細.売上No) ON 商品表.商品CD = 売上明細.商品CD) INNER JOIN 顧客表 ON 売上表.顧客CD = 顧客表.顧客CD;
補足
>どのような順番で書いても問題なしです。 ということなのですが、最低限のルールがあると思うのですが・・・ いきなりSQL文を書く場合、通常、どこに注目指定雲のでしょうか?