SQL找某个字段最大的记录或连接

有一种经常遇到的情况可以小结一下,比如一个表中一个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)