可以使用子查询和MAX函数来实现,具体的SQL语句如下:

SELECT A.*, B.*
FROM A
LEFT JOIN B ON A.id = B.a_id
WHERE B.time = (
  SELECT MAX(time)
  FROM B
  WHERE B.a_id = A.id
)

解释一下这个SQL语句的含义:

  1. 首先使用LEFT JOIN将A表和B表关联起来,关联条件是A表的id字段等于B表的a_id字段。
  2. 在WHERE子句中使用子查询,查询B表中与当前A表记录关联的记录中,时间最新的一条记录的时间(使用MAX函数)。
  3. 最后将整个查询结果返回,包括A表和B表的所有字段。注意,只有符合条件的B表记录会被返回,其他的B表记录会被过滤掉。

这样就可以实现只取关联后B表时间最新的一条记录了。


原文地址: https://www.cveoy.top/t/topic/bRje 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录