我有一个情况。我有两个表vehicles
和job
。我需要的是没有工作的车辆 list 。意味着我需要车辆
,其中车辆ID在作业
中不可用。
我尝试过:
SELECT v.id, v.registration_number
FROM vehicles AS v
LEFT JOIN job j ON j.vid = v.id
WHERE v.uid = ?
AND j.vid <> v.id
AND TO_DAYS(j.home_day2) - TO_DAYS(NOW()) <=11
AND TO_DAYS(j.home_day2) - TO_DAYS(NOW()) >=0
ORDER BY v.id DESC
但是即使有车辆没有工作,这也不会返回任何记录。
任何帮助表示赞赏。谢谢。
更新:
如果有人有示例,您可以检查相应的结果是否在其他表中可用,并根据条件排除该结果。
最佳答案
按照你的逻辑,这应该可行。
select v.id from
vehicles v
left join job j
on v.id = j.vid
and home_day2 < now() + interval 11 day
and home_day2 > now()
where j.vid is null
order by v.id desc;
但是如果我可以冒险猜测一下你想要什么,而不是你的查询显示的内容,它可能是这样的:
select v.id
from vehicles v
left join jobs j
on v.id = j.vid
and j.home_day2 < now() + interval 11 day
where j.vid is null
order by v.id desc;
这将为您提供所有从未有过工作的车辆、所有当前没有工作的车辆以及在未来 11 天内到期的所有车辆。
关于mysql - 比较两个mysql查询的结果并在一个查询中得到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29697243/