以前、MySQLで以下の質問をしました。
外部結合してデータを参照する際、複数の同一カラムに複数の値を持たせて結合させたいのですが、どうすれば良いかわかりません。
例えば
m_user
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
| user_id(int 4) | user_name(varchar 24) | skill_code(FK varchar 4) |
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ex)0000 山田 0000
m_skill
ーーーーーーーーーーーーーーーーーーーーーー
| skill_code(int 4) | skill_name(varchar 24) |
ーーーーーーーーーーーーーーーーーーーーーー
ex) 0000 java
0001 PHP
などとして、skill_codeで結合します。
今、m_userにskill_code一つしか結合できていません。
複数のskill_codeを結合したい場合、どうすればよいでしょうか。
よろしくお願いいたします。
ご回答としては、中間テーブルを作れば良いというご指摘をいただきました。
m_user_skill
ーーーーーーーーーーー
| user_id | skill_code |
ーーーーーーーーーーー
そこで今回は、以下の結果を参照する際、どのようなSELECT文を打てば良いのでしょうか。
ーーーーーーー
| 山田 | java |
| | php |
ーーーーーーー
*実行したselect文
SELECT
user.user_name
,skill.skill_name
FROM
(
runners_db.m_user_skill user_skill
LEFT OUTER JOIN runners_db.m_user USER
ON user_skill.user_id = user.user_id
)
LEFT OUTER JOIN runners_db.m_skill skill
ON user_skill.skill_code = skill.skill_code;
*結果
ーーーーーーーー
| 山田 | java |
| 山田 | PHP |
| 山田 | MySQL |
ーーーーーーーー
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー