当前位置: 首页 > 面试题库 >

mysql“不在哪里”使用两列

后烨煜
2023-03-14
问题内容

我有一个包含userID和的临时表taskID。它被称为CompletedTasks
我还有另一个包含userID和的表taskID。它被称为PlannedTasks

我需要获取所有taskID已完成但尚未计划的清单。
因此,我需要以某种方式从已完成的任务中清除所有行,其中都包括:

PlannedTasks.userID != CompletedTasks.userID

PlannedTasks.taskID != CompletedTasks.taskID

问题答案:

您可以使用以下命令(语法更紧凑):

SELECT *
FROM CompletedTasks
WHERE (userID, taskID) NOT IN
      ( SELECT userID, taskID
        FROM PlannedTasks
      ) ;

NOT EXISTS版本(尽管更复杂,但使用适当的索引应该会更有效):

SELECT c.*
FROM CompletedTasks AS c
WHERE NOT EXISTS 
      ( SELECT 1
        FROM PlannedTasks AS p
        WHERE p.userID = c.userID
          AND p.taskID = c.taskID
      ) ;

当然还有LEFT JOIN / IS NULL@jmacinnes的答案中的版本。



 类似资料:
  • 问题内容: 我看到了一些使用 Promise 访问FB Graph API 的Facebook登录服务的示例。 范例1 : 以及获得响应时使用的服务 范例2 : JSFiddle 问题是: 上面的示例有什么 区别 ? 使用 $ q 服务的 原因 和 案例 是什么? __ 以及它如何 运作 ? 问题答案: 这并不是您问题的完整答案,但是希望当您尝试阅读服务文档时,这将对您和其他人有所帮助。我花了一段

  • 问题内容: 似乎要合并两个或多个表,我们可以使用join或where。一个相对于另一个的优点是什么? 问题答案: 任何涉及多个表的查询都需要某种形式的关联,以将结果从表“ A”链接到表“ B”。传统的(ANSI-89)方法是: 在FROM子句中列出逗号分隔列表中涉及的表 在WHERE子句中编写表之间的关联 FROM TABLE_A a, TABLE_B b WHERE a.id = b.id 这是

  • 我已经将ViewPager和number of Fragment实现为子级,这里每个子级都覆盖自己的。 在我的应用程序中,导航行为是随机的,不是每次都有顺序。因为页面查看器执行缓存来加载额外的子级,这就是我的问题所在。我不确定何时应该初始化/释放子类成员。 需要你们的建议,在这种情况下使用PageViwer是否更好,或者我应该为每个组件使用传统的活动流。

  • 我正在制作一个基于Java EE的产品,其中我使用了GlassFish 3和EJB 3.1。 我的应用程序有会话bean,一个调度程序,并且使用web服务。我最近了解了Apache TomEE,它支持上下文和依赖注入(CDI)。GlassFish容器也支持CDI。 如果我不需要CDI也不提供的任何特性,我可以替换会话bean吗?如果那样的话,我能得到什么好处呢?

  • 问题内容: 我真的对在node-mysql中使用connection.end()感到困惑。 我不完全了解它的去向,目前我将其放在查询之后,但是如果我创建一个新查询,则会收到错误消息 现在我的应用有很多支票,其中一张是: 现在在那之后,如果我有任何其他查询,我会发生错误。 我在jsFiddle中做了一个更详尽的解释: http : //jsfiddle.net/K2FBk/ 以更好地解释我遇到的问题

  • 问题内容: 我看到mysql的全文停用词列表是英文的。考虑到全世界都在使用mysql,这有点奇怪… 无论如何,我将ft_min_word_len降低到3,所以我需要将我的语言中的常用单词添加到此列表中。 有人可以告诉我在哪里可以找到它? 谢谢 问题答案: 这应该工作: 要覆盖默认停用词列表,请设置ft_stopword_file系统变量。(请参见第5.1.4节“服务器系统变量”。)变量值应为包含停