首页 >> Coding >> 内容页

Mysql联表查询只取附表(关联表)最新行信息

情景:

主表A与附表B,是一对多关系。现关联两表查询,但只取B表中最新的记录。
默认情况下,联表查询,会对每个关联的关系产生一条记录。如A表中有两行记录,B表中对应A两行记录的分别有5行和6行,那么忽略查询条件的情况下,A关联B,将有11行记录。

代码

SELECT *
FROM table_a AS A
LEFT JOIN table_b AS B ON A.id = B.pid
  AND NOT EXISTS (SELECT * FROM table_b WHERE pid = A.id AND id > B.id)