MySQL INNER JOIN从第二个表中只选择一行

瓦西姆

我有一个users表和一个payments表,对于每个有付款的用户,表中可能有多个关联的付款payments我想选择所有有付款的用户,但只选择他们最近的付款。我正在尝试此SQL,但是我之前从未尝试过嵌套SQL语句,所以我想知道自己在做什么错。感谢帮助

SELECT u.* 
FROM users AS u
    INNER JOIN (
        SELECT p.*
        FROM payments AS p
        ORDER BY date DESC
        LIMIT 1
    )
    ON p.user_id = u.id
WHERE u.package = 1
吴宇森

您需要有一个子查询,以获取每个日期的最新日期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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MySQL:我可以使用 INNER JOIN 查找属于第二个表中定义的类别的表的项目吗?

MYSQL - 仅加入第二个表中的最后一行

MySQL JOIN 第二个表中的行之一

将一个mysql表中的一行连接到第二个表中的多行

返回 INNER JOIN SQL 中第二个表的第一个索引

MYSQL查询具有设置条件的表,如果满足第二个条件,则从另一个表中获取一行并继续

从一个表中选择所有记录并从第二个表中求和 MySQL

MySQL从一个表中减去第二个表中的某些行的值

Mysql WHERE与INNER JOIN

MySQL查询INNER JOIN

从MySQL中的最后一个条目中选择第二个

如何从第二个表中插入 mySQL 中的最后一条评论?

mySql-搜索第二个表中没有引用的行

MySQL-加入2个表时在第二个表中选择最后一个条目

Mysql:在第二个表中显示(选择)字段,在第一个表中显示匹配的键字段

MySQL左联接:从一个表中选择所有内容,但仅将第二个表中的值与条件匹配

MySQL从一个表中选择记录,如果它们的ID和用户名没有出现在第二个表中

MYSQL INNER JOIN和GROUP BY

MySQL INNER JOIN多列

MySQL查询INNER JOIN与别名

MySQL表填充一个dropown。选择后,将填充第二个下拉列表

MySQL使用组从一个表计数行并从第二个表联接

MySQL-如果第二个表为空或不为空,则从表1中选择

MySQL:对照第二个表的列中的值检查一个表中的列数

MySQL:使用phpMyAdmin使用一个表中的数据填充第二个表

Mysql 按第一个表日期分组并计算第二个表中的不同字段

如何在MySQL中创建视图以将第二个表中的行合并为第一个CSV列

如果第二个匹配,mysql从两个表中选择信息

在第二个左连接 MYSQL 中使用一个左连接表中的列