![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 日本の全市区町村を人口密度が低 1 2023/06/18 19:51
- JavaScript WordPressのコンタクトフォーム7にて送信者の位置情報を送らせたい 2 2022/09/14 23:28
- MySQL select *, `人口(男)`AND`人口(女)`/'面積' as '人口密度'FROM … 1 2023/07/03 21:05
- MySQL 「都道府県の面積の大きい順に並べる」このクエリselect構文を教えてください! テーブル名は'地理 1 2023/07/05 17:11
- その他(行政) 都道府県市区町村民に手厚い行政を行なっている都道府県市区町村は、どこの都道府県市区町村ですか。 具体 1 2023/07/02 10:12
- 地理学 どうして、北海道札幌市や茨城県水戸市などは都道府県と都道府県庁どちらも漢字で表記されているのに対し、 6 2022/07/03 12:21
- 地理学 東京都は「東京」、大阪府は「大阪」、静岡県は「静岡」。でも、北海道が「北海」でないのはなぜ? 5 2022/08/16 10:22
- 政治 道州制について。 「道州制」と一口にいっても様々あり、都道府県を残すか廃止するか、立法権も与えるか否 1 2022/11/17 19:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UPDATEで既存のレコードに文字...
-
SQL*LOADER実行時のロードデー...
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
文字列を追加してUPDATEしたい
-
MySQLで数字の値のもののみを取...
-
既存データをINSERT文にして出...
-
複数の条件に該当する結果を、...
-
Access特定のテーブルを編集不...
-
Accessで今日から5日後
-
データベース ユーザの「このユ...
-
テーブル名が可変の場合のクエ...
-
SQLで、Join句で結合したテ...
-
truncate tableを使って複数の...
-
クエリ式でDcount の代わりは?
-
同一テーブル内での比較(最新...
-
JDBCを使ってdate型へのINSERT...
-
オラクルのUPDATEで複数テーブル
-
データ無し時は空白行にしたい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UPDATEで既存のレコードに文字...
-
SQL*LOADER実行時のロードデー...
-
sqlite select 表示されない
-
カラム名を変更するには
-
OracleのLONG型への insert に...
-
SQL ServerのINNER JOINについて
-
技術評論社 SQL書き方ドリルの...
-
【SQL】同値のレコードがある場...
-
最強のブログサイト作成ツールとは
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
Accessで今日から5日後
-
truncate tableを使って複数の...
-
timestampのデータはどのように...
-
オラクルのUPDATEで複数テーブル
-
既存データをINSERT文にして出...
-
PostgreSQLのtimestamp型で時間...
-
エラーを起こす方法
おすすめ情報