【问题标题】:how can I select only all done Task in MYSQL? [closed]如何在 MYSQL 中只选择所有已完成的任务? [关闭]
【发布时间】:2017-08-24 21:12:40
【问题描述】:

我在 MYSQL 中做一个简单的任务。例如,有 Jib(jobId) 和 subjid(subJobId) 和 UL。 SubJobId是一个引用JOBID的Id,每个SubJID都有一个ul字段,我只需要那些UL为1的JID(JobId),如果有1个UL为0,则忽略。

请检查图片 enter image description here

【问题讨论】:

  • 欢迎来到 Stack Overflow。不幸的是,很难从问题的文本中说出您需要什么。通常,同时呈现几行示例表格内容和所需结果会很有帮助。

标签: mysql if-statement select


【解决方案1】:

您可以使用子查询轻松完成此操作。这两个人会成功的。

select *
  from your_schema.your_table a
  left join (select *              
               from your_schema.your_table
              where ul = 0) b
    on b.jid = a.jid
 where b.jid is null;

select *  
  from your_schema.your_table
 where jid not in (select jid 
                     from your_schema.your_table
                    where ul = 0);

【讨论】:

  • 你能解释一下你在这里关于 your_schema 的意思吗?
  • 与mysql中的数据库相同...基本上是表的集合。如果在运行查询之前已经选择了数据库,则可以忽略它。只需将“your_table”替换为您的表名,同时排除“your_schema”。
  • 你能澄清一下mysql查询中的'IN'或'NOT IN'是如何工作的吗? - 是否像 RUNS 查询一样查询当前的查询结果?
  • 当然,IN 期望子查询中选定列的结果与主查询列中的值相同。 NOT IN 则相反,主查询只返回那些 NOT IN 子句中列的值不等于子查询中列的结果的记录。所以在这种情况下,主查询返回那些在子查询的jid结果集中不存在jid值的记录。
猜你喜欢
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
相关资源
最近更新 更多