http://oshiete.goo.ne.jp/qa/7944235.html
の件に引き続きどうSQL文を書いてよいかわからず困っています。
create table team(team_id int not null primary key,team_name varchar(30),year int(4), leagueid int(32) );
insert into team values(1,"A",2012,1),(2,"B",2012,1),(3,"C",2012,1),(4,"D",2012,1),(5,"A",2012,2),(6,"B",2012,2),(7,"C",2012,2),(8,"D",2012,2),(9,"A",2011,1),(10,"B",2011,1),(11,"C",2011,1),(12,"D",2011,1);
create table taisen(id int not null primary key auto_increment,hometeam int,homepoint int,awayteam int,awaypoint int);
insert into taisen (hometeam,homepoint,awayteam,awaypoint)
values(1,3,2,2),(3,1,4,0),(1,0,3,2),(2,2,4,2),(1,1,4,2),(2,0,3,0),(2,1,1,2),(4,1,3,3),(3,5,1,2),(5,3,6,3),(5,1,7,1),(7,1,8,1),(9,1,10,1),(11,1,12,3);
とあり、
taisen.hometeamとteam.idとtaisen.awayteamとteam.idを結合し、taisenテーブルにteamのyear、leagueid、team_nameが表示されればと思っています。
通常のjoinであればできるのですが、どのようにsql文をかけばよいのかわからず困っています。
taisen.hometeamとteam.idとtaisen.awayteamとteam.idを結合したときに
| taisen.hometeam | ホームチーム名 | taisen.homepoint | taisen.awayteam | アウェイチーム名 | taisen.awaypoint | team.year | team.leagueid
で結果がとれるようにしたいのですが、どのようにしたらよろしいでしょうか?
No.1ベストアンサー
- 回答日時:
taisenに対してteamを2回joinしてやればよいのでは?
select
taisen.hometeam
,t1.team_name as hometeam_name
,taisen.homepoint
,taisen.awayteam
,t2.team_name as awayteam_name
,taisen.awaypoint
,t1.year
,t1.leagueid
from taisen
left join team as t1 on
t1.team_id=taisen.hometeam
left join team as t2 on
t2.team_id=taisen.awayteam
ちなみにyearとleagueidはホームチームもしくはアウェイチームのどちらかの
ものを拾うしかありません。
若干正規化の仕方がおかしいですね。
yambejp様
度々有難う御座います。
joinの連続でできたんですね。
自分でやったときはなかなかうまくできなかったんです。
本当に有難う御座いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- PHP php エラー 2 2022/10/23 16:43
- MySQL MYSQL エラー 2 2022/10/18 11:37
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
[MySQL] 3つのテーブルの結合で...
-
エクセルの関数について教えて...
-
sqlで、600行あるテーブルを100...
-
SQLサーバから、項目の属性(型...
-
上位3位を求めるSQL文は?
-
副問合せの書き方について
-
SQL Left Join で重複を排除す...
-
SQLにて特定の文字を除いた検索...
-
[MySQL] UNIQUE制約の値を更新...
-
Access パラメータクエリをcsv...
-
selectした大量データをinsert...
-
親と子供が複数のSQL取得方法
-
テーブルが5つの時の結合の仕...
-
書籍の内容はまともでしょうか?
-
クエリ表示と、ADOで抽出したレ...
-
【SQL文】Insert into文で文法...
-
VIEWの元のテーブルのindexって...
-
inner joinをすると数がおかし...
-
Mysqlでunionを使った検索速度...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
SQLサーバから、項目の属性(型...
-
副問合せの書き方について
-
VIEWの元のテーブルのindexって...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
select文のwhere句に配列を入れ...
-
sqlで、600行あるテーブルを100...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
Unionした最後にGROUP BYを追加...
-
期間の重複を調べるSQL文につい...
-
クエリ表示と、ADOで抽出したレ...
-
Access パラメータクエリをcsv...
-
PL/SQLの変数について
-
MySQLのDATE型カラム値がNULLの...
-
php+mysqlで複数選択削除について
-
上位3位を求めるSQL文は?
おすすめ情報