
題名の通りですが、php・mysqlを使用してリーグ戦表や順位表を作成したいと思っています。
ですが、まったく構成が組みたっておらず、だいたいの構成がわかる方がいらっしいましたらご教示お願いします。
参考サイト
リーグ表
http://soccer.yahoo.co.jp/jleague/matrix/j1
順位表
http://soccer.yahoo.co.jp/jleague/standings/j1
です。
上記参考サイトリーグ表の右側が仙台~福岡までの表記がありますが、こちらは順位表の内容が入ります。
それ以外はこのままです。
順位表は自動でソートされていますが、ボタン一つでソートの並び替えができるという風に考えています。
以上になりますが、だいたいの構成がわかる方がいらっしゃいましたら宜しくお願いします。
簡単に説明している部分もありますが、ご質問いただければお答えさせていただきます。
No.1ベストアンサー
- 回答日時:
何が必要か書き出すところから始めてみてください。
まず、チームを正規化した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の理解ができるようになってからでも
遅くないと思います
ご回答有難う御座います。
ややこしかったんですね。
自分の中でもう少し仕様を固めてから作りたいと思います。
作る際には上記を参考にさせていただきます。
有難う御座います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
[MySQL] UNIQUE制約の値を更新...
-
SQL Left Join で重複を排除す...
-
sqlで、600行あるテーブルを100...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
LAST_INSERT_IDで同時にアクセ...
-
Updateの複数テーブル条件時のL...
-
証明写真機の設置場所が知りたい
-
select文のwhere句に配列を入れ...
-
SQLサーバから、項目の属性(型...
-
SQLにて特定の文字を除いた検索...
-
親と子供が複数のSQL取得方法
-
Mysql でレコードを追加した時...
-
Excel2000でレーダーチャートの...
-
PL/SQLの変数について
-
期間の重複を調べるSQL文につい...
-
SELECT~LIKE~の結果が変
-
ある条件の最大値+1を初番する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
SQL Left Join で重複を排除す...
-
Access パラメータクエリをcsv...
-
マイクラPC版のコマンドで効率...
-
【Transact-sql】 execの結果を...
-
sqlで、600行あるテーブルを100...
-
SQLにて特定の文字を除いた検索...
-
1テーブル&複数レコードの更新...
-
PL/SQLの変数について
-
WordpressのContact form 7でzi...
-
複数テーブルのGROUP BY の使い...
-
バインド変数について
-
inner joinをすると数がおかし...
-
MySQLのint型で001と表示する方...
-
updateを1行ずつ実行したい。
おすすめ情報