gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:52:20 28 4
gpt4 key购买 nike

我有一个 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

最佳答案

您需要有一个子查询来获取每个用户 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

关于MySQL INNER JOIN 从第二个表中只选择一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12526194/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com