mysql - 比较两个mysql查询的结果并在一个查询中得到结果

标签 mysql database

我有一个情况。我有两个表vehiclesjob。我需要的是没有工作的车辆 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 天内到期的所有车辆。

Fiddle Here

关于mysql - 比较两个mysql查询的结果并在一个查询中得到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29697243/

相关文章:

mysql - 执行游标pymysql时加载%s变量时出错

mysql - Mysql 中的排名值

mysql - “GRANT ALL ON 数据库。* TO 命令中出现错误

mysql - 如何使用不使用键的 JOIN 执行 SQL SELECT 查询?

mysql - GlassFish 5 和 MySQL 连接器

mysql - 根据与其他两个表的关系删除记录

python - 基于保留重复项的公共(public)列的查找合并两个 dfs

ruby-on-rails - Rails 中的多个 has_many 关联

html - 这是从 iOS 上的网站提取数据的合法/安全方式吗?

java - 正在使用 query.getResultList();方法对性能有严重影响?