
Aテーブル{
id char(3) not null,
name varchar(10),
a_no char(5),
b_no char(5),
c_no char(5),
date timestamp
}
Bマスタ{
no char(5),
name char(10)
}
上記のようなDBがあるのですがAテーブルのa_no、b_no、c_noに入るのはBマスタのnoになります。
下記のようにデータを取得したい場合、どうすればうまく取得できるのでしょうか。
A.id,
A.name,
A.a_no,
カラム名をname1としてB.name,
b_no,
カラム名をname2としてB.name,
c_no,
カラム名をname3としてB.name
そんなに難しいことではないと思うのですが、考えれば考えるだけ頭の中でこんがらがってきて困っています。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
エイリアスをつかって同じテーブルをJOINして
いけばよいです。
SELECT `id`
,A.`name`
,`a_no`
,B1.`name` AS name1
,`b_no`
,B2.name AS name2
,`c_no`
,B3.name AS name3
FROM `Aテーブル` AS A
INNER JOIN `Bマスタ` AS B1 ON B1.`no`=A.`a_no`
INNER JOIN `Bマスタ` AS B2 ON B2.`no`=A.`b_no`
INNER JOIN `Bマスタ` AS B3 ON B3.`no`=A.`c_no`
ご回答ありがとうございます。
INNER JOINをこのように使用すればよかったのですね。
すっきりしました!
ありがとうございます。
No.1
- 回答日時:
これでどうでしょう
SELECT A.id,A.name,A.a_no,B.name name1,b_no,B.name name2,c_no,B.name name3
FROM A,B
WHERE A.a_no = B.no
OR A.b_no = B.no
OR A.c_no = B.no
この回答への補足
ご回答ありがとうございます。
この方法だと
B.name name1
B.name name2
B.name name3
もwhere句の条件からみて同様になってしまいます。
取得したいものは
【Aテーブル】
100 Aクラス 001 002 003 20060711
200 Bクラス 002 008 004 20060711
300 Cクラス 005 006 007 20060711
400 Dクラス 004 009 003 20060711
【Bテーブル】
001 山田
002 鈴木
003 滝田
004 小林
005 小暮
006 木下
007 神田
008 相田
009 小川
【取得後】
100 Aクラス 001 山田 002 鈴木 003 滝田 20060711
200 Bクラス 002 鈴木 008 相田 004 小林 20060711
300 Cクラス 005 小暮 006 木下 007 神田 20060711
400 Dクラス 004 小林 009 小川 003 滝田 20060711
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今週の日曜日から土曜日までの...
-
SQLの集計で「全て」の合計も表...
-
使うべきでない文字。
-
データの取得方法
-
チェックボックスの項目をDBにi...
-
SQL文で右から1文字だけ削除す...
-
MySQL のデータからドロップダ...
-
割合(パーセント)を求めるに...
-
【MYSQL】asでリネームしてwher...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
OracleのSQL*PLUSで、デー...
-
Accessで別テーブルの値をフォ...
-
oracleの分割delete
-
実績累計の求め方と意味を教え...
-
ADO VBA 実行時エラー3021
-
あるカラムのMAX値+1をINSERTし...
-
Excelで、改行がある場合の条件...
-
カレントレコードが無い事を判...
-
最新の日付とその金額をクエリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
使うべきでない文字。
-
【初歩】ラジオボタンをつかっ...
-
SQL文で右から1文字だけ削除す...
-
【MYSQL】asでリネームしてwher...
-
sum()の出力結果順に並び替えを...
-
MySQLで MAX()とGROUP BYを使う...
-
チェックボックスの項目をDBにi...
-
割合(パーセント)を求めるに...
-
SQLの集計で「全て」の合計も表...
-
表示幅を短くしたい
-
ビット演算
-
検索機能で条件を指定しない場...
-
月別、販売員別の集計がわかり...
-
Update文の書き方について
-
UNIONについて
-
[初心者]A表の2つの値からB表...
-
MySQLのクエリについて
-
今週の日曜日から土曜日までの...
-
初心者Mysqlの関数のsubstring...
-
カウント結果を1レコードの中...
おすすめ情報