MySQL INNER JOIN select only one row from second table

后端 未结 11 974
不知归路
不知归路 2020-11-30 21:11

I have a users table and a payments table, for each user, those of which have payments, may have multiple associated payments in the payments

11条回答
  •  伪装坚强ぢ
    2020-11-30 21:39

    You need to have a subquery to get their latest date per user ID.

    SELECT  a.*, c.*
    FROM users a 
        INNER JOIN payments c
            ON a.id = c.user_ID
        INNER JOIN
        (
            SELECT user_ID, MAX(date) maxDate
            FROM payments
            GROUP BY user_ID
        ) b ON c.user_ID = b.user_ID AND
                c.date = b.maxDate
    WHERE a.package = 1
    

提交回复
热议问题