sql >> データベース >  >> RDS >> Mysql

ユーザーごとにグループ化し、MYSQLの最新情報が機能しないことを表示します

    ロビンの回答 へのコメントで述べたように 、MySQLは、各グループから常に最新のステータスを返すことを保証しないため、このアプローチは信頼できません。代わりに、(addedDateに基づいて)最新のステータスを選択するサブクエリを使用してテーブルを結合する必要があります 。

    SELECT   *
    FROM     status
      NATURAL JOIN (
        SELECT   userID, MAX(addedDate) as addedDate
        FROM     status
        GROUP BY userID
      ) AS mostRecent
    ORDER BY addedDate DESC
    LIMIT    10
    

    ユーザーが同じaddedDateで複数のステータス更新を行っている場合は注意してください 、サーバーはそれらすべてを返します(Robinのクエリは不確定なものを返します)。このような状況を制御する必要がある場合は、どのステータス更新を選択するかを決定する方法を定義する必要があります。



    1. AndroidRoom-オブジェクト内のオブジェクトのリストの処理と結果のクエリ

    2. MySQL-参照テーブルを介して別のテーブルから列を選択します

    3. SubQueryMySQLを使用してINSERTINTO

    4. バイナリ文字列をCLOB列に格納できますか