mysql - 只获取MySQL中JOIN的最后一条记录

标签 mysql left-join outer-join

我有 2 个表 A、B,其中 B 包含 A 的外键

ida,cola1
idb,fka,colb1

对于 A 中的每条记录,我只需要获取 LEFT OUTER JOIN 的最后一个结果。以下查询显示所有 JOIN,如何将其限制为仅最后一次出现的 fka?

SELECT ida,idb,cola1,colb1 FROM a LEFT OUTER JOIN b ON ida=fka

最佳答案

如果表 b 中的最后一个结果是具有最高 idb 的结果,则一种解决方案是使用子查询,在其中计算每个 fka 的 max(idb):

select
  a.ida,
  a.cola1,
  b.idb,
  b.fka,
  b.colb1
from
  a left outer join (
    select fka, max(idb) as max_idb
    from b
    group by fka
  ) max_b on a.ida=max_b.fka
  left outer join b on max_b.fka=b.fka and max_b.max_idb=b.idb

关于mysql - 只获取MySQL中JOIN的最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34102207/

相关文章:

php - 使用php mysql添加不同行和列的数值

mysql - Oracle SQL 查询 : Finding the number of counts of similar objects between parent project and child project

mysql - 如何使用 MySql 根据时间间隔获取 id

mysql - mysql 中可用的任何部分外连接

mysql - 无法连接到远程 MySQL 服务器并出现错误 61

mysql - 我如何决定何时使用右连接/左连接或内连接或者如何确定哪个表在哪一侧?

sql - 优化在同一表上使用多个左连接的查询

c# - Linq 子选择

MySQL 连接导致重复

mysql - 聚合函数什么时候需要 GROUP BY?