有一种经常遇到的情况可以小结一下,比如一个表中一个account_id对应多个loan_id,这个时候找最大的loan_id那条记录就是形如
SELECT DISTINCT ON(account_id),loan_id,XXX FROM table ORDER BY account_id,loan_id DESC
ORDER BY 后的第一个字段要和SELECT DISTINCT ON的字段匹配;
还有一种就是子查询连表的时候,比如通过account_id连接,但是只要loan_id最新的一条,这个时候形如:
SELECT * FROM table1
LEFT JOIN table2
ON table2.pk = (select pk from table2 where account_id = table1.account_id order by loan_id DESC limit 1)注意,连接条件必须找主键,不然可能出现一对多的情况
本文介绍了如何使用SQL查询来找到每个account_id对应的最高loan_id记录,包括使用DISTINCT ON和ORDER BY语句的正确用法,以及在子查询连接表时如何获取最新loan_id的方法。
2万+

被折叠的 条评论
为什么被折叠?



