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

それぞれの個別のcandidate_idの最新の日付を持つ行からデータを返します

    group byする必要があります 集計関数を使用していないものすべて:

    SELECT candidate_id, message, max(created_unix), jobpost_id, staffuserid 
        FROM messages 
           WHERE employer_id='$employerid' AND last='company' 
              GROUP BY candidate_id, message, jobpost_id, staffuserid 
    

    messageの場合 行ごとに異なり、group by candidate_idしたい 、messageを使用してはいけません 。その場合は、選択リストから削除するだけで、group byでは不要になります。 リスト。使用していない他のフィールドについても同じことが言えます。

    集計関数を使用する場合は、集計関数またはgroup byのいずれかに各フィールドを含める必要があることに注意してください。 。そうしないと、SQLは、返された行のデータをプルする行を認識できません。

    更新:

    あなたが探しているものを見た後、これはトリックを行います:

    SELECT candidate_id, message, max(created_unix), jobpost_id, staffuserid 
        FROM messages 
           WHERE employer_id='$employerid' AND last='company' AND
           created_unix = (
               SELECT max(subm.created_unix)
               FROM messages subm
               WHERE subm.candidate_id = messages.candidate_id
           )
    


    1. バックアップからのMySQLまたはMariaDBGaleraクラスターの完全な復元

    2. クエリパフォーマンスインサイト:Azure SQLデータベースのリソースを消費するものを発見しますか?

    3. RMySQLシステムエラー:10060

    4. MySQLでのEXPORT_SET()関数のしくみ