问题标签 [subquery]
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.
mysql - MySQL子选择性能问题?
我需要有关 MySQL 中子选择性能的建议。由于无法更改的原因,我无法使用 JOIN 创建查询过滤器,我只能在 WHERE 中添加另一个 AND 子句。
什么是性能:
相比:
请注意,is_template = 1 的项目数量相对较少,而 is_template <> 1 的项目数量可能很多。
如果我除了过滤之外什么都不能改变,还有其他方法可以在没有子选择的情况下获得相同的结果吗?
php - PHP/mySQL - 如何将嵌套行提取到多维数组中
来自我的另一个问题,我学会了不要在循环中使用数据库查询,因此我必须学习如何在循环之前以方便的方式获取所有数据。
假设我有两个表“秤”和“项目”。items 中的每一项都属于一个 scale in scales,并与一个外键(scaleID)链接。我想在一个查询中将所有数据提取到一个数组结构中,这样第一个维度是所有列的所有比例并嵌套在其中,一个项目的所有项目都缩放所有列。
结果将是这样的:
到目前为止,我主要完成了一对一关系的左连接。这是一个一对多的,我无法完全理解它。
它是一个正确的连接吗,它也可以用一个子查询来完成,如何将完整的外部行也放入其中......
稍后我想用嵌套的 foreach 循环遍历它。
也许只是我头疼...
sql - PostgreSQL - 相关子查询失败?
我有一个这样的查询:
目标是获取在另一个表中出现 5 次的所有元素的 id。但是,我收到此错误:
我可能在这里做一些愚蠢的事情,因为我对数据库有点陌生。有没有办法修复这个查询,以便我可以访问num_things
?或者,如果没有,有没有其他方法可以达到这个结果?
sql - SQL 从表中排除 LIKE 项目
我试图弄清楚如何使用表 B 中的排除列表从表 A 中的 select 语句中排除项目。问题是我是根据字段的前缀排除的。
因此,一个字段值可能是“FORD Muffler”并将其从基本查询中排除,我会这样做:
但是要使用从不同表中排除的值列表,我会使用子查询,例如:
问题是它只排除完全匹配而不是 LIKE 或通配符 (%)。
我怎样才能完成这项任务?重新设计表格不是一种选择,因为它是正在使用的现有表格。
编辑:对不起,我使用的是 SQL Server (2005)。
sql - 需要子查询帮助
我需要得到 2 个汇总数字,但是我遇到了问题,因为一个是针对总订单的,一个是针对不完整的订单的。这些使用相同的初始查询,但是未完成的订单有一个额外的 where 子句。可以将这些放入查询中,以便我只获得 2 列。我以前做过内部查询,但我从来没有用 2 个不同的 where 子句做过一个?!任何想法都非常受欢迎
用于总订单的查询即时消息是:
使用订单不完整查询即时消息:
sql - 使用外键更新子查询问题
我记错了这个模板表的键是什么,因此我添加了错误的字段作为外键。现在我需要添加外键,并且我想根据已经填充的其他字段填充它的值。我开始尝试使用更新语句来做到这一点,但我不知道该怎么做。
我的架构的一部分:
产品表:
我添加了 TemplateID,但它还没有数据并且可以为空。
模板表:
我想使用 Templates 表为 Products 表中的每个 TemplateName 找到匹配的 TemplateID,并将其填写到 Products 表中的外键引用中。
我可以使用 Update 中的子查询来执行此操作,还是需要编写某种存储过程?我正在使用 Sql Server 2008
sql - MySQL添加总列
我需要查询此数据库以获取每一行,以及结果的列值之一的 SUM。我可以使用 php 来获取总值,但是我需要运行两个循环,一个来获取总值(位于结果上方的顶部)。所以我更喜欢查询来捕获它并只创建一个“总”行,但我让它工作的唯一方法是使用基本上是原始查询重复的子查询。有没有更好的办法?
上述工作和输出:
这是我需要的,但可能不是获得它的最佳方式。
sql - Oracle:将子查询中的多个结果组合成一个逗号分隔值
我正在尝试将单列子查询转换为以命令分隔VARCHAR
的类型的值列表。
这与此问题相同,但适用于 Oracle 而不是 SQL Server 或 MySQL。
sql - 我应该在子查询中使用 Top(1)
示例查询:
因此,如果您可以阅读 SQL,您应该会看到我正在执行几个相关的子查询来缩小 join 的结果。(是的,这太简单了)。
在某些情况下,子查询:
可以返回超过 1 个值,这会导致错误
“子查询返回的值超过 1 个。当子查询跟随 =、!=、<、<=、>、>= 或将子查询用作表达式时,这是不允许的。”
我完全期待。这显然不是一件好事,我有代码(希望)首先防止这些重复项进入数据库(即表 B应该只有 1 行与
标准),但是最终用户如果没有创造性地寻找我想不出的破坏软件的方法,那将一事无成。
所以现在我的问题:
将第一个子查询更改为
防止用户在/如果(希望永远不会)出现这种情况时看到错误,或者让错误发生。我倾向于不添加顶部语句并让错误出现,而不是让用户看到可能不正确的数据。我想知道在这种情况下是否有人对最佳实践有任何想法......
sql-server - 如何在 Sql 2008 中执行此空间查询?
我正在尝试在 sql 2008 中进行空间查询-> 对于给定的 POI 列表(兴趣点、长/纬度GEOGRAPHY
数据),它们存在于哪些邮政编码中(多面GEOGRAPHY
数据)。
所以这是我尝试过的查询,但它在语法上不正确:-
所以这意味着我传入一个POI Id 的 csv 列表并拆分它们。这不是问题..这是我在STIntersects
. 那是无效的。
所以..有什么建议吗?