【问题标题】:MySQL select unique records from one table with two select queries using NOT INMySQL 从一个表中选择唯一记录,其中两个选择查询使用 NOT IN
【发布时间】:2023-03-11 10:11:01
【问题描述】:
TaskNumber JobNumber Status Date
11111 JS0001 0 04-06-2021
11112 JS0002 0 05-06-2021
11113 JS0003 1 05-06-2021
11114 JS0001 1 06-06-2021

表任务。 TaskNumber 是唯一的 id(主键)。 状态 0 未完成,1 已完成。

示例: JobNumber JS0001 于 6 月 4 日分配但尚未完成, 所以在 6 月 6 日重新分配并完成(状态 1)

如何获得没有使用 mysql 查询完成的唯一工作编号? (仅 2021 年 4 月 6 日未完成的作业编号,例如 JS0002 而不是 JS0001)?

我尝试了以下语句,但它只显示状态为 0 的所有记录,是否可以编写两个 select 语句并使用 NOT IN 进行比较?

SELECT DISTINCT Job_no FROM TASKS WHERE status='0'

谢谢

【问题讨论】:

    标签: mysql sql database select


    【解决方案1】:

    我会使用聚合和having:

    select jobnumber
    from tasks
    group by jobnumber
    having max(status) = 0;
    

    【讨论】:

    • 这个答案效果很好,我如何计算所有这些记录,我尝试使用 select count(*) from Tasks with max(status) = '0' 但返回0
    • @iwhd 。 . .您可以将其用作子查询:select count(*) from ( . . . ) t.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多