次のクエリは、いくつかの行を返します。各行には、それぞれ独自のdate_created
があります。mySQLまたはPHPのいずれかの日付に基づいて出力行をグループ化する方法はありますか?
SELECT *
FROM table1 l
inner join table2 d
ON d.id = l.id
WHERE l.company_id = 1
UNION ALL
SELECT *
FROM table1 l
inner join table3 p
ON p.id = l.id
WHERE p.company_id = 1
サンプル出力:
company_id ---- user_id ---- text ---- dateAndTime
1 ---- abc ---- hi ---- 2017-08-17 22:26:18
1 ---- def ---- hey ---- 2017-08-08 11:57:26
1 ---- abc ---- hi ---- 2017-08-08 11:55:40
1 ---- ghz ---- sup ---- 2017-07-25 16:01:34
私が達成したいこと:
私は、これらすべてのデータを表示するには、PHPのforeachループを実行しています。しかし、各日付の変更時に、私は日付を表示したいと思う(それらをデザインに基づいてグルーピングするように)。
だから、(表示上の)出力
2017-08-17
1 ---- abc ---- hi ---- 2017-08-17 22:26:18
2017-08-08
1 ---- def ---- hey ---- 2017-08-08 11:57:26
1 ---- abc ---- hi ---- 2017-08-08 11:55:40
2017-07-25
1 ---- ghz ---- sup ---- 2017-07-25 16:01:34
は、どのように私はどちらかMySQLやPHPでこれを達成することができますか?
クエリで 'ORDER BY DATE(dateAndTime)'を使用します。残りの部分をPHPで処理します。 PHPコードはまだ書いてありますか? –
@TimBiegeleisen私は正直言ってこの注文をしていますが、PHPの部分は欠けています。私がしようとしていた一つのアイデアは、foreachループから '前の日付 'を保存することですが、論理的に立つことはできません。少なくとも私の心の中で。 – EnexoOnoma
[非常に単純なSQLクエリであると思われるものに対してMCVEを提供する理由(http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for)非常にシンプルなSQLクエリ) – Strawberry