Firebird如何选择与集合中所有项目匹配的ID

史蒂夫

我正在使用Firebird 2.1。

这里有张桌子: IDs, Labels

同一ID可以有多个标签:

10 Peach
10 Pear
10 Apple
11 Apple
12 Pear
13 Peach
13 Apple

假设我有一组标签,例如:(Apple,Pear,Peach)。

如何编写单个选择以返回在给定集中具有所有标签关联的所有ID?优选地,我想在用逗号分隔的字符串中指定集合,例如:('Apple','Pear','Peach')-›这应返回ID = 10。

谢谢!

弗拉兹

按照要求,我要发布我的piclrow答案的简单版本。我已经在2.5版本的Firebird上进行了测试,但是OP(Steve)在2.1上进行了测试,它也可以正常工作。

SELECT id
FROM table
WHERE label IN ('Apple', 'Pear', 'Peach')
GROUP BY id
HAVING COUNT(DISTINCT label)=3

该解决方案与pilcrow的缺点相同。...您需要知道要查找多少个值,因为HAVING =条件必须与WHERE IN条件匹配。在这方面,Ed的答案更加灵活,因为它拆分了串联的值字符串参数并计算了值。因此,您只需要更改一个参数,而不是我和pilcrow使用的2个条件即可。

OTOH,如果需要提高效率,我宁愿(但我绝对不确定)Firebird引擎可能不如我建议的那样对Ed的CTE方法进行优化。Firebird非常擅长优化查询,但是当您以这种方式使用CTE时,Firebird是否能够做到这一点我现在还不是很清楚。但是,只需在(id,label)上建立索引,即可优化WHERE + GROUP BY + HAVING。

总之,如果执行时间与您的情况有关,那么无论您选择哪种解决方案,您都可能需要一些解释计划以查看正在发生的情况;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择至少匹配列表中所有项目的记录

来自分类Dev

如何选择匹配列表中所有值的值?

来自分类Dev

MongoDB:引用集合中所有项目的总和

来自分类Dev

如何获取集合中所有文件的所有文件?

来自分类Dev

如何使用节点js更新mongo中集合中所有文档的_id?

来自分类Dev

如何获取DocumentDB文档中所有集合的列表?

来自分类Dev

如何在选择或单击列表中的单个项目时更新 FlatList 中所有项目的 UI 设计

来自分类Dev

获取数据表中所有项目的ID

来自分类Dev

如何获取char数组中所有匹配char的索引?

来自分类Dev

如何获取char数组中所有匹配char的索引?

来自分类Dev

如何在PHP中生成多个数组中所有可能的项目选择以缓存过滤器系统

来自分类Dev

Webpack:如何编译项目中所有较少的文件

来自分类Dev

如何汇总列表中所有共享特定属性的项目?

来自分类Dev

如何测试容器中所有项目的价值?

来自分类Dev

JavaScript RegEx匹配集合中所有字符,除了一些

来自分类Dev

如何获取数据集中所有未选择的行

来自分类Dev

选择所有具有匹配标签的项目

来自分类Dev

选择所有具有匹配标签的项目

来自分类Dev

JPQL-JPA实体的集合成员中所有项目的列表

来自分类Dev

LINQ查询以获取与ID数组的所有项目匹配的项目

来自分类Dev

查找集合中所有可能的和

来自分类Dev

集合中所有可能的独特组合

来自分类Dev

集合中所有可能的独特组合

来自分类Dev

使用C#选择MongoDB集合中所有用户的最后N个文档

来自分类Dev

Javascript过滤方法,删除数组中所有具有匹配值的项目

来自分类Dev

如何将Backbone集合过滤到ID匹配数组中任何ID的所有模型?

来自分类Dev

如何减少MySQL表中所有行的id列?

来自分类Dev

PHP,MySQL-获取与数组中所有项目匹配的行

来自分类Dev

如何选择所有项目完成的所有订单?

Related 相关文章

  1. 1

    选择至少匹配列表中所有项目的记录

  2. 2

    如何选择匹配列表中所有值的值?

  3. 3

    MongoDB:引用集合中所有项目的总和

  4. 4

    如何获取集合中所有文件的所有文件?

  5. 5

    如何使用节点js更新mongo中集合中所有文档的_id?

  6. 6

    如何获取DocumentDB文档中所有集合的列表?

  7. 7

    如何在选择或单击列表中的单个项目时更新 FlatList 中所有项目的 UI 设计

  8. 8

    获取数据表中所有项目的ID

  9. 9

    如何获取char数组中所有匹配char的索引?

  10. 10

    如何获取char数组中所有匹配char的索引?

  11. 11

    如何在PHP中生成多个数组中所有可能的项目选择以缓存过滤器系统

  12. 12

    Webpack:如何编译项目中所有较少的文件

  13. 13

    如何汇总列表中所有共享特定属性的项目?

  14. 14

    如何测试容器中所有项目的价值?

  15. 15

    JavaScript RegEx匹配集合中所有字符,除了一些

  16. 16

    如何获取数据集中所有未选择的行

  17. 17

    选择所有具有匹配标签的项目

  18. 18

    选择所有具有匹配标签的项目

  19. 19

    JPQL-JPA实体的集合成员中所有项目的列表

  20. 20

    LINQ查询以获取与ID数组的所有项目匹配的项目

  21. 21

    查找集合中所有可能的和

  22. 22

    集合中所有可能的独特组合

  23. 23

    集合中所有可能的独特组合

  24. 24

    使用C#选择MongoDB集合中所有用户的最后N个文档

  25. 25

    Javascript过滤方法,删除数组中所有具有匹配值的项目

  26. 26

    如何将Backbone集合过滤到ID匹配数组中任何ID的所有模型?

  27. 27

    如何减少MySQL表中所有行的id列?

  28. 28

    PHP,MySQL-获取与数组中所有项目匹配的行

  29. 29

    如何选择所有项目完成的所有订单?

热门标签

归档