
題名の通りですが、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で質問しましょう!
似たような質問が見つかりました
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- 数学 リーグ戦で昇級、降級の考え方 5 2022/06/19 14:28
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- 大学受験 娘の大学受験勉強 6 2022/06/30 19:58
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- SEO ホームページを作る際の質問です 1 2023/06/07 18:50
- Illustrator(イラストレーター) アイビスペイント、原稿作成について 1 2023/07/14 03:01
- Excel(エクセル) エクセルVBA オートフィルタでの絞り込みと並び替えについて 1 2023/07/08 13:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQLサーバから、項目の属性(型...
-
エクセルの関数について教えて...
-
エラー 1068 (42000): 複数の主...
-
select文のwhere句に配列を入れ...
-
バインド変数について
-
VIEWの元のテーブルのindexって...
-
SQL文のエラー
-
SQLにて特定の文字を除いた検索...
-
TreeViewのCheckBoxについて
-
MySQLのint型で001と表示する方...
-
LEFT JOIN と GROUP BY
-
updateを1行ずつ実行したい。
-
HAVING count()で重複したデー...
-
Unionした最後にGROUP BYを追加...
-
Mysql サブクエリの使い方
-
最小値をUPDATE
-
テーブルの結合について
-
上位3位を求めるSQL文は?
-
MySQL NULLだけをカウントして...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLにて特定の文字を除いた検索...
-
【Transact-sql】 execの結果を...
-
マイクラPC版のコマンドで効率...
-
SQL Left Join で重複を排除す...
-
sqlで、600行あるテーブルを100...
-
複数テーブルのGROUP BY の使い...
-
WordpressのContact form 7でzi...
-
クエリ表示と、ADOで抽出したレ...
-
SQLサーバから、項目の属性(型...
-
selectした大量データをinsert...
-
Access パラメータクエリをcsv...
-
副問合せの書き方について
-
inner joinをすると数がおかし...
-
insertを高速化させたい
-
[MySQL] 3つのテーブルの結合で...
おすすめ情報