ホームページ  >  記事  >  データベース  >  MySQL はグループ化後に最新のレコードを取得します

MySQL はグループ化後に最新のレコードを取得します

大家讲道理
大家讲道理オリジナル
2017-05-28 11:18:402269ブラウズ

質問と同様に、インターネットで関連するソリューションも探しましたが、多くの答えは次のようなSQLステートメントです:
select Id,AccountId,Mark,max(CreateTime) as Most(AccountMark) as b group by AccountId

Max関数を使用してください。しかし、私が見つけたデータには何か問題があるようです。図に示すように、強調表示されたデータでは、Mark フィールドと CreateTime フィールドがまったく対応していません。



何が起こっているのですか? Max 関数を使用した後に をグループ化することは信頼できますか?
別のステートメントがあります: select *,COUNT(AccountId) as Num from
(select * from AccountMark order by CreateTime desc) `temp`
group by AccountId order by CreateTime desc
この方法で見つかったデータは正しいです


ただし、
ビューを作成する必要があり、Mysqlのビューではquery句は許可されていません。句が出現せずに正しいデータを検出できる SQL ステートメントを誰かが提供してもらえますか?ありがとう!

解決策:

存在しない b として AccountMark から * を選択します (AccountId= b.AccountId

および b.CreateTime

以上がMySQL はグループ化後に最新のレコードを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。