次の3日間の最高温度(t0、t1、t2でのtemphi)をリゾート(res_id)に返すこのクエリがあります。私はリゾートごとに1列に予測をしたいと考えています(複数リゾートの場合)。どうやってやるの?mysqlグループの単一テーブル行への結果
ここだけのmysqlヒント
res_id lud temphi
1 2017-02-05 -5
1 2017-02-06 -2
1 2017-02-07 -8
4 2017-02-05 2
4 2017-02-06 1
4 2017-02-07 -1
望ましい結果
res_id t0 t1 t2
1 -5 -2 -8
4 2 1 -1
$rQuery1 = "SELECT a.lud, a.temphi,a.res_id
FROM sv_snowalert a
LEFT JOIN sv_orte b ON a.res_id = b.res_id AND b.ski_id>0
INNER JOIN sv_canton c ON b.can_id = c.can_id
INNER JOIN sv_country d ON c.cou_id = d.cou_id
WHERE a.lud>='2017-02-05' GROUP BY a.res_id, a.lud ORDER BY a.res_id, a.lud ASC";
$rResult1 = mysql_query($rQuery1);
$seq=0;
$num_rows = mysql_num_rows($rResult1)
while ($rows1 = mysql_fetch_array($rResult1))
{
$seq++;
// output
}
これは典型的なテーブルピボットの問題です。もし 'lud'がこれらの3つ以上の日付を持っていたら?それとも、この3つの日付が必要ですか? – Blank
あなたは必要なものすべてを持っています。ループを開始します。 res_idが変更されるたびに新しい行を開始し、そうでない場合は新しい列を開始します。これは決定的にピボット問題ではありません。これはフォーマット上の問題で、PHPで最もよく処理されます。 – Strawberry
ああ。 PHPの廃止予定のmysql_ APIの使用をやめてください。 – Strawberry