问题标签 [sql-match-all]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9959 浏览

sql - SQL 一对多在多方面通过 ALL 匹配一方面

在下面一对多

其中 params.source 是 source.id 的外键

如果我有一个参数值列表(比如 [1,2,3]),我如何在 SQL 中找到具有列表中所有值的所有源(源 1,“是”)?

谢谢

0 投票
3 回答
168 浏览

mysql - mysql:使用 AND 样式查询连接表 + 查找记录,而不是 OR

注意:使用 MySQL 4.0,这意味着没有子查询(目前)。

我有 2 张桌子:

  • 一个“user_details”表
  • 一个“skills”表,其中包含 user_id 和一个“skill_id”,它映射到在别处定义的预定义技能集。

当前查询允许管理员通过选择技能来搜索用户,并且查询以 OR 方式工作,例如:

这会返回太多记录,因此我希望此搜索字段以 AND 方式工作,其中用户必须具有所有选定的技能才能在搜索中返回。

如果子查询是最好的选择,那么升级 MySQL 是可能的。

编辑:与分组,计数,拥有等有关。您可以通过命令限制分组,并要求您返回多少匹配的行?(例如本例中的 5)。

编辑2:测试:

0 投票
4 回答
505 浏览

sql - SQL问题:排除记录

我有一个数据库(NexusDB(应该符合 SQL-92)),其中包含 Item 表、一个 Category 表和一个多对多 ItemCategory 表,它只是一对键。如您所料,项目被分配到多个类别。

我希望所有最终用户选择所有项目

物品编号 | 分类号
--------------------------------
01 | 01
01 | 02
01 | 12

02 | 01
02 | 02
02 | 47

03 | 01
03 | 02
03 | 14
等...

我希望能够选择分配给类别 X、Y 和 Z 但未分配给类别 P 和 Q 的所有 ItemID。

例如,对于上面的示例数据,假设我想获取分配给类别 01 或 02 但不是 12 的所有项目(产生项目 02 和 03)。类似于以下内容:

SELECT ItemID WHERE (CategoryID IN (01, 02))

...并从该集合中删除 SELECT ItemID WHERE NOT (CategoryID = 12)

这可能是一个非常基本的 SQL 问题,但它现在难倒我。任何帮助 w/b 表示赞赏。

0 投票
4 回答
233 浏览

sql - 基于一组命名属性/值的查询

我正在使用一组本质上是属性/值对的东西(实际上还有很多,但为了这个问题,我正在简化)。实际上,您可以这样考虑表:

实体 (EntityID,AttributeName,AttributeValue) PK=EntityID,AttributeName
Targets (TargetID,AttributeName,AttributeValue) PK=TargetID,AttributeName

您将如何使用 SQL 查询 EntityID、TargetID 的集合,其中一个实体具有目标的所有属性以及相应的值?

编辑(根据要求进行 DDL):

0 投票
6 回答
16773 浏览

mysql - 在不同的行上选择满足不同条件的值?

这是一个非常基本的查询,我无法弄清楚....

假设我有一个像这样的两列表:

我想获取所有具有roleids1、2 和 3 的不同用户 ID。使用上面的示例,我想要返回的唯一结果是userid1。我该怎么做?

0 投票
2 回答
118 浏览

mysql - 如何在 Mysql 中进行此查询?

我有 3 个表格、消息、主题和message_subject_rel. 这个想法是让消息与很多主题相关,然后进行跨主题搜索。

假设我有一条消息:

2个科目:

并且有 2message_subject_rel个条目:

如果我想搜索与数学相关的消息,我会与 3 个表进行简单连接,where 子句将是 subject = "Math"

但我不知道该怎么做,就是搜索与数学和科学相关的消息。如果我做一个简单的连接,我会得到类似的表格:

如果我这样做,where subject = "Math" and subject = "Science"我不会得到任何结果,因为每条消息在每一行中只有一个相关的主题,但是对于超过 1 个主题的消息,重复的行。

那么,你有什么推荐的?

0 投票
2 回答
138 浏览

mysql - 强制 mySQL 加入一个表(做一个未优化的查询,我需要)

这有点奇怪。我有下一个查询:

如您所见,我使用 t 加入查找我想要的消息,另一方面我使用 x 打印消息的标签。我删除了这条线:

我会得到我想要的消息,但标签将在标签表中包含用逗号分隔的所有标签。如果我把线路留在那里,我只会得到这 2 个标签。如果我使用解释我得到:

现在我不是这方面的专家,但我认为问题在于它拒绝在优化查询的过程中重新加入表。

你怎么看?有什么快速解决办法吗?

0 投票
9 回答
10322 浏览

sql - 什么是用于选择项目/属性列表中具有多个属性的项目的 SQL 语句?

假设我有一个表,其中列出了项目和属性,例如,

从项目列中,我想选择具有绿色和 4 条腿属性的唯一对象。在这种情况下,我希望只取回青蛙对象。执行此操作的最有效查询是什么?

0 投票
8 回答
7345 浏览

sql - 使用不确定数量的参数时如何避免使用动态 SQL?

我有一个类似 StackOverflow 的标记系统,用于我正在处理的数据库。我正在编写一个存储过程,它根据 WHERE 子句中未确定数量的标签查找结果。可以有 0 到 10 个标签来过滤结果。因此,例如,用户可能正在搜索标记为“apple”、“orange”和“banana”的项目,并且每个结果必须包含所有 3 个标签。我的查询变得更加复杂,因为我还要处理用于标记的交叉引用表,但出于这个问题的目的,我不会讨论这个问题。

我知道我可以做一些字符串操作并向 exec() 函数提供一个查询来处理这个问题,但我不希望与动态 SQL 相关的性能问题。我认为最好是 SQL 缓存存储过程的查询计划。

在这种情况下,您使用了哪些技术来避免动态 SQL?

根据大众的需求,这是我正在使用的查询:

这是功能性的,但硬编码。您会看到我已将其设置为查找“颜色”和“饱和度”标签。

0 投票
4 回答
981 浏览

sql - SQL查询选择与其他产品成分相同的产品

我有一个数据库,将“市场上可用”的产品和“仍在开发中”的产品存储在两个单独的表(market_productdev_product)中。第三张表(物质)包含一个产品可以制成的所有物质。其他两个表 (marked_product_compdev_product_comp) 包含产品组成。

我想选择仍在开发中的产品,这些产品由与已上市产品相同的成分制成。

在以下(简化)示例中,查询必须从 dev_product 表中选择 ID = 2 的产品。

如何编写这样的查询?


更新:

抱歉,我没有注意到我以模棱两可的方式问了我的问题。

我想选择与至少一种已上市产品具有相同成分的仍在开发中的产品。例如,如果有一个dev_product由物质 {1,2} 制成,而只有一个market_product由物质 {1,2,3} 制成,我想丢弃它dev_product,因为它具有不同的成分。我希望这能澄清。