mysql A表关联B表 B表有多条记录 只取关联后B表时间最新的一条记录
可以使用子查询和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语句的含义:
- 首先使用LEFT JOIN将A表和B表关联起来,关联条件是A表的id字段等于B表的a_id字段。
- 在WHERE子句中使用子查询,查询B表中与当前A表记录关联的记录中,时间最新的一条记录的时间(使用MAX函数)。
- 最后将整个查询结果返回,包括A表和B表的所有字段。注意,只有符合条件的B表记录会被返回,其他的B表记录会被过滤掉。
这样就可以实现只取关联后B表时间最新的一条记录了。
原文地址: https://www.cveoy.top/t/topic/bRje 著作权归作者所有。请勿转载和采集!