在同一列上使用多个 WHERE 条件进行 SELECTING

2023-12-04

好吧,我想我可能在这里忽略了一些明显/简单的东西...但是我需要编写一个查询,仅返回与同一列上的多个条件匹配的记录...

我的表是一个非常简单的链接设置,用于将标志应用于用户......

ID   contactid  flag        flag_type 
-----------------------------------
118  99         Volunteer   1 
119  99         Uploaded    2 
120  100        Via Import  3 
121  100        Volunteer   1  
122  100        Uploaded    2

等等...在这种情况下,您会看到联系人 99 和 100 都被标记为“志愿者”和“已上传”...

我需要做的是仅返回那些与通过搜索表单输入的多个条件匹配的 contactid...contactid 必须匹配所有选定的标志...在我的脑海中,SQL 应该类似于:

SELECT contactid 
 WHERE flag = 'Volunteer' 
   AND flag = 'Uploaded'...

但是...没有返回任何内容...我在这里做错了什么?


您可以使用GROUP BY and HAVING COUNT(*) = _:

SELECT contact_id
FROM your_table
WHERE flag IN ('Volunteer', 'Uploaded', ...)
GROUP BY contact_id
HAVING COUNT(*) = 2 -- // must match number in the WHERE flag IN (...) list

(假设contact_id, flag是独特的)。

或者使用连接:

SELECT T1.contact_id
FROM your_table T1
JOIN your_table T2 ON T1.contact_id = T2.contact_id AND T2.flag = 'Uploaded'
-- // more joins if necessary
WHERE T1.flag = 'Volunteer'

如果标志列表很长并且有很多匹配项,第一个可能会更快。如果标志列表很短并且匹配项很少,您可能会发现第二个更快。如果性能是一个问题,请尝试对您的数据进行测试,看看哪个效果最好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在同一列上使用多个 WHERE 条件进行 SELECTING 的相关文章

随机推荐

  • RestSharp - 反序列化具有无效键名的 json 响应(包含句点)

    我已经被困在这个问题上有一段时间了 我有一个 JSON 响应 向我发送包含句点的密钥 例如 cost center code 我怎样才能把它放到我的对象中 我没有收到任何错误 但该值只是作为 null 输入 并且没有被反序列化到我的类中 这
  • 使用tutorialspoint.com时出现NoSuchElementException

    所以我正在使用这个编译器站点编写我的代码 https www tutorialspoint com compile java online php 当我运行我的代码时 出现以下错误 Exception in thread main java
  • 最大化打印预览?

    有没有办法最大化打印预览对话框 我在属性窗口的控件上看不到任何最大化属性 它在属性页中不可用 因为您必须将 PrintPreviewDialog 转换为 Form 才能访问这些 Form 属性 DirectCast PrintPreview
  • Azure AD - SAML 单点注销 - 不支持的绑定 HTTP-POST

    我正在将 SAML 服务提供商与 MS AAD 集成 并且发现单点注销存在问题 我的服务提供商仅支持注销绑定 HTTP POST 而且AAD似乎只支持注销绑定 HTTP Redirect 根据我从 AAD 获得的 SAML 元数据 我认为是
  • 带和不带边界检查的 `std::bitset`

    再次关于STLstd bitset 它的文档说功能set reset test进行边界检查 并且operator 没有 我的计时实验表明功能set test通常比执行速度快 2 3 operator 我正在使用的代码是 typedef un
  • 将参数传递给 Swift 中的选择器函数[重复]

    这个问题在这里已经有答案了 我想通过一个范围到一个名为 a 的函数selector from a timer 具体参考一个cell这样我就可以更新一些内容UI 所以我想要这样的东西 timer Timer init timeInterval
  • 文档中键不同的多个字段平均聚合

    我得到的数据集如下 id ObjectId 592d4f43d69b643ac0cb9148 timestamp ISODate 2017 03 01T16 58 00 000Z Technique Meteo Direction moye
  • 将 IFrame 的 src 属性设置为 data:application/pdf;base64?

    将 IFrame 的 src 属性设置为 data application pdf base64 对我不起作用 有什么想法吗 这是 aspx 标记
  • Java - 设置首选项后备存储目录

    我需要在我的 Java 应用程序中创建一个持久存储 以便所有用户都可以访问它 所以我正在研究java util prefs Preferences并使用systemRoot 我在 Windows 上工作得很好 将数据保存在寄存器中 但我在
  • R 删除数据帧的第一行,直到第一行没有 NA

    我正在数据框上应用 na approx 如果 NA 恰好位于数据库的第一行或最后一行 则该方法将不起作用 如何编写执行以下操作的函数 当数据帧第一行的任何值为 NA 时 删除第一行 数据框示例 x1 x2 c 1 2 3 4 5 6 7 8
  • 如何为谷歌图表的x轴赋予样式?

    我正在实现 google 图表 我想为 x 轴数据提供样式 我发现下面的代码可以做到这一点 hAxis title Month textStyle fontSize 10 我想在文本数据下划线并将光标样式更改为指针 我在谷歌图表网站上搜索但
  • getter 和 setter 的设计是否糟糕?看到矛盾的建议[重复]

    这个问题在这里已经有答案了 我目前正在用 Java 开发一个具有几种不同模式的简单游戏 我扩展了一个主 Game 类 将主要逻辑放入其他类中 尽管如此 主要的游戏类别仍然相当庞大 快速浏览一下我的代码后 与游戏逻辑真正需要的其余部分相比 其
  • 是否有适用于 JVM 的 Web 框架可以在编译时检查数据绑定?

    通常 当您将某些属性绑定到 www 页面中的某些元素时 您在测试时就会知道拼写错误 我正在寻找 Web 框架 它在编译时会给我一个错误 我在绑定中犯了错误 找不到属性 或类似的东西 并假设我的 IDE 具有有效的重构机制 重命名属性也会影响
  • 如何在角度js中的按钮单击上使用过滤器

    您能告诉我如何在单击按钮时按升序或降序对数组进行排序吗 实际上我在标题 V 上有一个按钮 使用按钮单击我想按升序显示数据 实际上我正在 Ionic 中制作网格视图使用角度js 但我想使用按钮单击对其进行排序 我需要根据第一列对表进行排序 因
  • MySQL 是否比 PostgreSQL(在 Perl/DBI 下)更能抵抗 SQL 注入攻击?

    我正在审查一个基于 Linux 的 Perl Web 应用程序 其中包含一个具有普遍存在的登录处理程序 my sth DB gt prepare 从 userid userid 的密码中选择密码 或死 sth gt 执行或死亡 其中 use
  • 哪些操作系统支持 Java 中的本机(类似 inotify)文件监视

    JavaDoc 用于java nio file WatchService states 实施 是 旨在直接映射到本机文件事件通知 设施在可用的情况下 或使用原始机制 例如 当本机设施不可用时进行轮询 我认为这意味着它将在可能的情况下尝试一种
  • PostgreSQL NodeJS 中无法识别的配置参数“autocommit”

    message 翻译创建时出错 对于关键等等等等 名称 SequelizeDatabaseError stack SequelizeDatabaseError 无法识别的配置参数 自动提交 n Query module exports Qu
  • 使用 Intellij 和 JUnit 从控制台读取 System.in

    当通过 Idea 中的 main 运行代码时 以下代码运行良好 System in read 然而 junit 方法中的相同代码不起作用 public void testConsoleRead System in read 知道如何使这项工
  • 如何使 jQuery UI 可通过嵌套下拉菜单进行排序?

    我已阅读与此处发布的问题类似的所有内容 但没有找到任何解决方案 我创建了一个菜单 在下拉菜单中包含子菜单条目 所有菜单条目都可分类到所有菜单级别 根菜单条目到子列表 反之亦然 几乎一切都工作正常 但排序到第一个下拉列表会导致错误 不可能在第
  • 在同一列上使用多个 WHERE 条件进行 SELECTING

    好吧 我想我可能在这里忽略了一些明显 简单的东西 但是我需要编写一个查询 仅返回与同一列上的多个条件匹配的记录 我的表是一个非常简单的链接设置 用于将标志应用于用户 ID contactid flag flag type 118 99 Vo