问题标签 [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.
sql - SQL 一对多在多方面通过 ALL 匹配一方面
在下面一对多
其中 params.source 是 source.id 的外键
如果我有一个参数值列表(比如 [1,2,3]),我如何在 SQL 中找到具有列表中所有值的所有源(源 1,“是”)?
谢谢
mysql - mysql:使用 AND 样式查询连接表 + 查找记录,而不是 OR
注意:使用 MySQL 4.0,这意味着没有子查询(目前)。
我有 2 张桌子:
- 一个“user_details”表
- 一个“skills”表,其中包含 user_id 和一个“skill_id”,它映射到在别处定义的预定义技能集。
当前查询允许管理员通过选择技能来搜索用户,并且查询以 OR 方式工作,例如:
这会返回太多记录,因此我希望此搜索字段以 AND 方式工作,其中用户必须具有所有选定的技能才能在搜索中返回。
如果子查询是最好的选择,那么升级 MySQL 是可能的。
编辑:与分组,计数,拥有等有关。您可以通过命令限制分组,并要求您返回多少匹配的行?(例如本例中的 5)。
编辑2:测试:
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 表示赞赏。
sql - 基于一组命名属性/值的查询
我正在使用一组本质上是属性/值对的东西(实际上还有很多,但为了这个问题,我正在简化)。实际上,您可以这样考虑表:
实体 (EntityID,AttributeName,AttributeValue) PK=EntityID,AttributeName
Targets (TargetID,AttributeName,AttributeValue) PK=TargetID,AttributeName
您将如何使用 SQL 查询 EntityID、TargetID 的集合,其中一个实体具有目标的所有属性以及相应的值?
编辑(根据要求进行 DDL):
mysql - 在不同的行上选择满足不同条件的值?
这是一个非常基本的查询,我无法弄清楚....
假设我有一个像这样的两列表:
我想获取所有具有roleids
1、2 和 3 的不同用户 ID。使用上面的示例,我想要返回的唯一结果是userid
1。我该怎么做?
mysql - 如何在 Mysql 中进行此查询?
我有 3 个表格、消息、主题和message_subject_rel
. 这个想法是让消息与很多主题相关,然后进行跨主题搜索。
假设我有一条消息:
2个科目:
并且有 2message_subject_rel
个条目:
如果我想搜索与数学相关的消息,我会与 3 个表进行简单连接,where 子句将是 subject = "Math"
但我不知道该怎么做,就是搜索与数学和科学相关的消息。如果我做一个简单的连接,我会得到类似的表格:
如果我这样做,where subject = "Math" and subject = "Science"
我不会得到任何结果,因为每条消息在每一行中只有一个相关的主题,但是对于超过 1 个主题的消息,重复的行。
那么,你有什么推荐的?
mysql - 强制 mySQL 加入一个表(做一个未优化的查询,我需要)
这有点奇怪。我有下一个查询:
如您所见,我使用 t 加入查找我想要的消息,另一方面我使用 x 打印消息的标签。我删除了这条线:
我会得到我想要的消息,但标签将在标签表中包含用逗号分隔的所有标签。如果我把线路留在那里,我只会得到这 2 个标签。如果我使用解释我得到:
现在我不是这方面的专家,但我认为问题在于它拒绝在优化查询的过程中重新加入表。
你怎么看?有什么快速解决办法吗?
sql - 什么是用于选择项目/属性列表中具有多个属性的项目的 SQL 语句?
假设我有一个表,其中列出了项目和属性,例如,
从项目列中,我想选择具有绿色和 4 条腿属性的唯一对象。在这种情况下,我希望只取回青蛙对象。执行此操作的最有效查询是什么?
sql - 使用不确定数量的参数时如何避免使用动态 SQL?
我有一个类似 StackOverflow 的标记系统,用于我正在处理的数据库。我正在编写一个存储过程,它根据 WHERE 子句中未确定数量的标签查找结果。可以有 0 到 10 个标签来过滤结果。因此,例如,用户可能正在搜索标记为“apple”、“orange”和“banana”的项目,并且每个结果必须包含所有 3 个标签。我的查询变得更加复杂,因为我还要处理用于标记的交叉引用表,但出于这个问题的目的,我不会讨论这个问题。
我知道我可以做一些字符串操作并向 exec() 函数提供一个查询来处理这个问题,但我不希望与动态 SQL 相关的性能问题。我认为最好是 SQL 缓存存储过程的查询计划。
在这种情况下,您使用了哪些技术来避免动态 SQL?
根据大众的需求,这是我正在使用的查询:
这是功能性的,但硬编码。您会看到我已将其设置为查找“颜色”和“饱和度”标签。
sql - SQL查询选择与其他产品成分相同的产品
我有一个数据库,将“市场上可用”的产品和“仍在开发中”的产品存储在两个单独的表(market_product
和dev_product
)中。第三张表(物质)包含一个产品可以制成的所有物质。其他两个表 (marked_product_comp
和dev_product_comp
) 包含产品组成。
我想选择仍在开发中的产品,这些产品由与已上市产品相同的成分制成。
在以下(简化)示例中,查询必须从 dev_product 表中选择 ID = 2 的产品。
如何编写这样的查询?
更新:
抱歉,我没有注意到我以模棱两可的方式问了我的问题。
我想选择与至少一种已上市产品具有相同成分的仍在开发中的产品。例如,如果有一个dev_product
由物质 {1,2} 制成,而只有一个market_product
由物质 {1,2,3} 制成,我想丢弃它dev_product
,因为它具有不同的成分。我希望这能澄清。