[英]sql select,get most recent entry for each car
我的数据库(MySql)有2个表
表1-包含每辆车的记录
汽车= id(int),reg(int),type(int)
表2-包含每辆车的工作
工作= id(int),date(date)
我需要一个SELECT命令,它将为我提供所有ID的最新工作
提前致谢。
您没有共享字段,您无法执行此操作。 您需要将关联的car_id与每个作业一起存储,或者具有一个jobs_to_cars表。
那你就用了:
SELECT C.*, J.id, MAX(J.date)
FROM cars C
INNER JOIN jobs J on J.car_id = C.id
GROUP BY C.id
如果Job的ID与汽车的ID相同,则将j.car_id更改为j.id,但是您会缺少Jobs的主键,我建议您开始制作。
你可以用这样的东西
SELECT c.*, MAX(j.date) date
FROM cars c
LEFT JOIN jobs j ON j.id = c.id
GROUP BY c.id
ORDER BY c.id
因为您在[职位]中没有其他字段。 如果汽车没有任何工作,则日期将为NULL。
SELECT *
FROM cars c
INNER JOIN (SELECT MAX(id) AS j_id
FROM jobs
GROUP BY car_id) x ON x.j_id = c.id
jobs.car_id
字段,该字段指定了哪个汽车作业属于 car.last_job_id
并与触发保持它jobs
表。 由于您的问题不清楚,因此该查询也可以作为答案:
SELECT j.*
FROM jobs j
INNER JOIN (SELECT MAX(id) id
FROM jobs
GROUP BY car_id) x ON x.id = j.id
你可以试试
ORDER BY date DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.