- 締切済み
sql文
現在試合結果のSQL文を作っています。 テーブルは下記内容になっており、今までは個々のテーブルに試合日程IDを渡して表示させていました。 今までは ("select from 試合日程テーブル") ("select from 試合結果テーブル where 試合日程ID = 試合日程id") ("select from 試合味方得点者テーブル where 試合日程ID = 試合日程id") ("select from 試合相手得点者テーブル where 試合日程ID = 試合日程id") 現在はもっと簡単にできるのではないかと思い作り直そうと思っています。 試合日程テーブル | id | 相手 | | 0001 | 相手A | | 0002 | 相手B | | 0003 | 相手C | 試合結果テーブル | id | 試合日程ID | 得点 | 失点 | | 1 | 0001 | 6 | 0 | | 2 | 0002 | 4 | 4 | | 3 | 0003 | 0 | 5 | 味方得点者 | id | 試合日程ID | 得点者 | | 1 | 0001 | Aさん | | 2 | 0001 | Aさん | | 3 | 0001 | Bさん | | 4 | 0001 | Cさん | | 5 | 0001 | Dさん | | 6 | 0001 | Dさん | | 7 | 0002 | Aさん | | 8 | 0002 | Bさん | | 9 | 0002 | Cさん | | 10 | 0002 | Dさん | 相手得点者 | id | 試合日程ID | 得点者 | 1 | 0002 | 相手Aさん | | 2 | 0002 | 相手Bさん | | 3 | 0002 | 相手Cさん | | 4 | 0002 | 相手Cさん | | 5 | 0003 | 相手Aさん | | 6 | 0003 | 相手Aさん | | 7 | 0003 | 相手Aさん | | 8 | 0003 | 相手Cさん | | 9 | 0003 | 相手Cさん | ここで各試合結果を出したときに相手得点者、味方得点者をidごとに出す方法を教えていただけないでしょうか? 試してみたところ ("select from 試合日程テーブル") ("select from 試合結果テーブル) ( left join 試合味方得点者テーブル on 試合結果テーブル.試合日程ID = 試合味方得点者テーブル.試合日程id") ( left join 試合相手得点者テーブル on 試合結果テーブル.試合日程ID = 試合相手得点者テーブル.試合日程id") (where 試合結果テーブル.試合日程ID = 試合日程id) で試してみましたがうまくきませんでした。 上記のテーブルの内容で1試合に対し、得点者がちゃんと表示されるようにしたいです。 例:試合日程IDが0001の場合は味方得点者が6人分表示され、00002の場合は味方得点者が4人分と相手得点者が4人分表示されるように。 わかりにくい説明ではあると思いますが、宜しくお願いいたします。 足りない部分を指摘いただけると幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- t_ohta
- ベストアンサー率38% (5292/13828)
select id , 試合日程ID , 得点者 from 試合味方得点者テーブル where 試合日程ID = 試合日程id union all select id , 試合日程ID , 得点者 from 試合相手得点者テーブル where 試合日程ID = 試合日程id と言う事でしょうか。