これ何て呼びますか

kid | id | name | day | tday |
1 | 1 | 松 | 25 |
1 | 2 | 谷  | 15 |

このようなデータがあったとして、それぞれのMAX(day)を出力する場合どうしたらいいでしょうか??

$sql2 = 'SELECT kid,id,name,MAX(day),tday FROM em WHERE kid='.$_SESSION["kid"].'' ;

これだと松さんのデータしか出力されないし、MAXを外すと、例えば松さんのデータが二個あり出力した場合、松(25)松(18)谷(15)と出力されてしまいます。
希望は

松(25)谷(15)

それぞれの最大値です。

A 回答 (2件)

$sql2 = 'SELECT kid,id,name,day,tday FROM em WHERE kid='.$_SESSION["kid"].' AND (name,day) IN (SELECT name,MAX(day) FROM em GROUP BY name)';



ただしMAX値にあたるnameが2つ以上あれば結局2行以上表示されますが
    • good
    • 0
この回答へのお礼

毎度、ありがとうございます。
yambeさんの回答はマジックみたいです。

お礼日時:2012/05/27 09:28

SELECT kid,id,name,MAX(day),tday FROM em group by kid,id,name,tday


ではどうでしょうか。

この回答への補足

ダメでした。何故か最大値以外もでます。

補足日時:2012/05/27 07:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!