
SQL Server 2008 R2のINNER JOINについて質問させて下さい。
------------------------------
SELECT * FROM [Customer]
INNER JOIN Pref
ON Customer.CustomerPref1 = Pref.PrefId
ON Customer.CustomerPref2 = Pref.PrefId
ON Customer.CustomerPref3 = Pref.PrefId
WHERE ([CustomerId] = 123)
------------------------------
3つもONがあって変なSQL文となっております。
(当然SQLエラーとなります。)
やりたい事は、
顧客フォーム[Customer]の中に、都道府県をプルダウン選択する項目が3つあります。
3つとも都道府県マスタテーブルをリレーション(FK)しております。
3つの都道府県項目で「都道府県名」をそれぞれSELECTするには、
どうしたらよいでしょうか?
ご教授頂けますようお願い申し上げます。
------------------
▼DB情報
顧客情報テーブル:Customer
顧客ID:CustomerId
都道府県カラム1:CustomerPref1(1,2,3,~などの値が格納)
都道府県カラム2:CustomerPref2(1,2,3,~などの値が格納)
都道府県カラム3:CustomerPref3(1,2,3,~などの値が格納)
都道府県マスタテーブル:Pref
都道府県ID:PrefId(1, 2, 3,~などの値が格納)
都道府県名:PrefName(1:北海道, 2:青森県, 3:岩手県~などの値が格納)
No.1ベストアンサー
- 回答日時:
こんな感じでしょうか?
この場合は、内部ではなく外部結合にして都道府県テーブルを
別名で3つ開けるという形になると思います。
SELECT Customer.*
, Pref1.PrefName as PrefName1
, Pref2.PrefName as PrefName2
, Pref3.PrefName as PrefName3
FROM Customer
LEFT OUTER JOIN Pref Pref1
ON Customer.CustomerPref1 = Pref1.PrefId
LEFT OUTER JOIN Pref Pref2
ON Customer.CustomerPref2 = Pref2.PrefId
LEFT OUTER JOIN Pref Pref3
ON Customer.CustomerPref3 = Pref3.PrefId
WHERE CustomerId = 123
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UPDATEで既存のレコードに文字...
-
OracleのLONG型への insert に...
-
SELECT INTOで一度に複数の変数...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
Accessの構成をコピーしたい
-
【VB】セルが空になるまで処理...
-
UPDATEの更新前の値を取得したい
-
既存データをINSERT文にして出...
-
truncate tableを使って複数の...
-
T-SQLで任意の箇所で強制終了す...
-
テーブル定義書(Oracle) 【IX】...
-
ACCESS テキストボックスに入...
-
SQLサーバに対するSQL文で抽出...
-
PostgreSQLのtimestamp型で時間...
-
selectの単純繰り返し
-
テーブル名が可変の動的SQLをフ...
-
あってますか?SQL
-
エラーを起こす方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UPDATEで既存のレコードに文字...
-
SQL*LOADER実行時のロードデー...
-
【DB2】VARCHAR拡張時のデータ...
-
カラム名を変更するには
-
最強のブログサイト作成ツールとは
-
HTMLソースの検索について
-
OracleのLONG型への insert に...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
SQLサーバに対するSQL文で抽出...
-
エラーを起こす方法
-
truncate tableを使って複数の...
-
既存データをINSERT文にして出...
-
timestampのデータはどのように...
-
オラクルのUPDATEで複数テーブル
-
SQLで、Join句で結合したテ...
-
PostgreSQLのtimestamp型で時間...
-
Accessの構成をコピーしたい
おすすめ情報