質問と同様に、インターネットで関連するソリューションも探しましたが、多くの答えは次のような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 サイトの他の関連記事を参照してください。