総当り表
以前にご質問させていただきましたが、時間が経ってしまったため、再度ご質問させていただきました。
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);
上記のデータを使用し、下記の参考サイトの戦績表みたいな作成を考えております。
http://match.nadeshikoleague.jp/2013/nadeshiko_cup_a/match/fight.html
参考サイトですと1チームに対し、2試合ずつになっていますが、1試合を考えております。
SQL文で対戦したデータの呼び出しはできていると思います。
SELECT
t.team_id,
t.year,
t.team_name AS hometeamname,
t.leagueid,
ti.homepoint,
ti.awaypoint,
t1.team_name AS awayteamname
FROM
team AS t1 INNER JOIN (team t INNER JOIN taisen ti ON t.team_id = ti.hometeam) ON t1.team_id = ti.awayteam WHERE t.`year` = '2012' AND t.`leagueid` = 1
上記でうけとったデータにて総当り表を作成したいのですが、
PHPでどのように記述したらよろしいでしょうか?
サンプルコードなどいただけると幸いです。
また、対戦していないところに関しては「-」というのを入れたいです。
お分かりの方が、いらっしゃいましたらご教授お願いします
お礼
ありがとうございます。 質問前に「移動平均線 SQL」で検索したのですが、 質問後に「移動平均 SQL」でドンピシャが出て困っていました。 質問後だと、質問者からコメントを入れられないんですね。 >無駄に重い処理がかかるとおもいます 本当に仰る通りで、PCがフリーズしまくりました。 日付を任意の一日に特定しても、3s。 やはり、長大データ数の場合は、indexを使わないSQLは使い物になりません。 アプリ側で編集することにします。