2016-10-07 7 views
-1

クエリ文字列でOrder ByとGroup Byを使用すると問題が発生します。サブクエリでグループ化する前に、mysql 5.5で動作しますが、mysql 5.5では動作しません。

 
id se_id enrollment_start 
------------------------- 
1 1  2005-07-01 
2 2  2008-10-12 
3 2  2006-05-09 
4 1  2016-11-10 
5 3  2015-02-04 
6 3  2010-08-11 

が、私は最高のenrollment_startを持ってse_idを取得したい:以下に示すように

データを含むテーブルのキャリアがあります。

これは私が使用したSQL文です。これは、MySQL 5.5で動作しますが、MySQL 5.7にはない:

 
SELECT 
    tmp.* 
FROM 
    (SELECT 
     * 
    FROM 
     careers 
    ORDER BY enrollment_start DESC) tmp 
GROUP BY tmp.se_id 

これは、GroupWiseの最大の問題であり、多くの話題はそれについてカバーがあります。しかし、私はその問題の答えを望んでいない、私は上記のステートメントをmysql 5.5でwokingを知りたいが、それはmysql 5.7で動作しないし、それを修正する方法はありますか?ありがとうございました。

+0

5.5での作業が純粋な運の場合。それはうまくいかない。 –

+0

私はそうは思わない、何度もテストしたが、サブクエリーが順序付けられていない結果を返すことがわかっていても、常に魅力的に機能する –

+0

マニュアルページを見るhttps://dev.mysql.com/doc/refman/5.7/en /group-by-handling.html – Drew

答えて

0

には、enrollment_startが最も高いse_idが必要です。使用LIMIT

SELECT * 
FROM careers 
ORDER BY enrollment_start DESC 
LIMIT 1 
+0

ありがとうございます。しかし、私は1つではなく、多くの行を取得したい –

関連する問題