何が必要か書き出すところから始めてみてください。
まず、チームを正規化したteamテーブルがいりますね。
とりあえず4チームつくりましょう。
create table team(team_id int not null primary key,team_name varchar(30));
insert into team values(1,"A"),(2,"B"),(3,"C"),(4,"D");
試合結果を保存しておくテーブルがいりますね。
試合のidをプライマリとして、ホームチームのid、ホームチームの得点、アウェイチーム
のid,アウェイチームの得点があればとりあえず大丈夫です。
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);
これで、順位表をつくってみます。
select team_name チーム名
,sum(homepoint>awaypoint)*3 +sum(homepoint=awaypoint) as 勝ち点
,count(sub.team_id) as 試合数
,sum(homepoint>awaypoint) as 勝ち数
,sum(homepoint=awaypoint) as 引き分け
,sum(homepoint<awaypoint) as 負け数
,sum(homepoint) as 得点
,sum(awaypoint) as 失点
,sum(homepoint) - sum(awaypoint) as 得失点差
from (
select hometeam as team_id,homepoint,awaypoint from taisen
union all select awayteam as team,awaypoint,homepoint from taisen
) as sub
left join team on sub.team_id=team.team_id
group by sub.team_id
order by 勝ち点 desc,得失点差 desc;
対戦表はちょっと応用になりますので、上記SQLの理解ができるようになってからでも
遅くないと思います
お礼
ご回答有難う御座います。 ややこしかったんですね。 自分の中でもう少し仕様を固めてから作りたいと思います。 作る際には上記を参考にさせていただきます。 有難う御座います。