PHP+MYSQLで、思ったような結果を得ることができません。
お力添え、よろしくお願いいたします。
内容
以下のようなテーブルがあるとします。
SELECT A.date , A.hour , A.category , B.name , C.content FROM ( A LEFT JOIN B ON A.member_id=B.id ) LEFT JOIN C ON B.id=C.member_id ORDER BY A.hour,B.name,C.checkorder DESC,C.ID DESC
上のようなSQL文を書くと、
となります。欲しい情報は、
12/10
13:00 basic
中野 イケメン
神田 未婚
14:00 beginner
大久保 男性
という感じで、hourで最初にヒットしたnameのC.IDの最大でcheckorderを優先した値が欲しいです。各hourにnameが重複するのを防ぎたいです。
GROUP BY を使おうと思い、
SELECT A.date , A.hour , A.category , B.name , C.content FROM ( A LEFT JOIN B ON A.member_id=B.id ) LEFT JOIN C ON B.id=C.member_id GROUP BY name ORDER BY A.hour,B.name,C.checkorder DESC,C.ID DESC
となってしまいます。
そもそもGROUP BYの使い方が悪いのかもしれませんが、結果1のようにソートして各nameの最初のデータのみ表示するにはどのようにすれば良いでしょうか。実際には別のデータを使っているのですが、C.idでソートを変えたりもできず困っております。
よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー