MySQL INNER JOIN select only one row from second table

后端 未结 11 992
不知归路
不知归路 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:24

       SELECT u.* 
            FROM users AS u
            INNER JOIN (
                SELECT p.*,
                 @num := if(@id = user_id, @num + 1, 1) as row_number,
                 @id := user_id as tmp
                FROM payments AS p,
                     (SELECT @num := 0) x,
                     (SELECT @id := 0) y
                ORDER BY p.user_id ASC, date DESC)
            ON (p.user_id = u.id) and (p.row_number=1)
            WHERE u.package = 1
    

提交回复
热议问题