我有两个名为“用户”和“付款”的表。在 Payment 中,有一个用户表的外键。这是付款表的记录。
从付款中选择 id,User_id;
id | User_id |
---|---|
1 | 1 |
2 | 1 |
3 | 2 |
4 | 3 |
5 | 2 |
但我的预期输出是这样的。
id | User_id |
---|---|
1 | 1 |
3 | 2 |
4 | 3 |
我只想要 SQL 中每个 User_id 的第一个数据。
P粉2620731762023-09-12 14:14:03
试试这个...
SELECT p1.id, p1.user_id FROM payment p1 WHERE p1.id IN (SELECT MIN(p2.id) FROM payment p2 GROUP BY p2.user_id)
假设,“第一个”是指该用户付款表中 id
的最小值,并且您还需要付款表中的更多详细信息或对其执行其他操作...
如果您只想要 MIN 付款 ID,那么只需这样即可:
SELECT MIN(id), user_id FROM payment GROUP BY user_id