问题标签 [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.

0 投票
4 回答
3868 浏览

mysql - MySQL子选择性能问题?

我需要有关 MySQL 中子选择性能的建议。由于无法更改的原因,我无法使用 JOIN 创建查询过滤器,我只能在 WHERE 中添加另一个 AND 子句。

什么是性能:

相比:

请注意,is_template = 1 的项目数量相对较少,而 is_template <> 1 的项目数量可能很多。

如果我除了过滤之外什么都不能改变,还有其他方法可以在没有子选择的情况下获得相同的结果吗?

0 投票
2 回答
8525 浏览

php - PHP/mySQL - 如何将嵌套行提取到多维数组中

来自我的另一个问题,我学会了不要在循环中使用数据库查询,因此我必须学习如何在循环之前以方便的方式获取所有数据。

假设我有两个表“秤”和“项目”。items 中的每一项都属于一个 scale in scales,并与一个外键(scaleID)链接。我想在一个查询中将所有数据提取到一个数组结构中,这样第一个维度是所有列的所有比例并嵌套在其中,一个项目的所有项目都缩放所有列。

结果将是这样的:

到目前为止,我主要完成了一对一关系的左连接。这是一个一对多的,我无法完全理解它。

它是一个正确的连接吗,它也可以用一个子查询来完成,如何将完整的外部行也放入其中......

稍后我想用嵌套的 foreach 循环遍历它。

也许只是我头疼...

0 投票
5 回答
5393 浏览

sql - PostgreSQL - 相关子查询失败?

我有一个这样的查询:

目标是获取在另一个表中出现 5 次的所有元素的 id。但是,我收到此错误:

我可能在这里做一些愚蠢的事情,因为我对数据库有点陌生。有没有办法修复这个查询,以便我可以访问num_things?或者,如果没有,有没有其他方法可以达到这个结果?

0 投票
3 回答
25494 浏览

sql - SQL 从表中排除 LIKE 项目

我试图弄清楚如何使用表 B 中的排除列表从表 A 中的 select 语句中排除项目。问题是我是根据字段的前缀排除的。

因此,一个字段值可能是“FORD Muffler”并将其从基本查询中排除,我会这样做:

但是要使用从不同表中排除的值列表,我会使用子查询,例如:

问题是它只排除完全匹配而不是 LIKE 或通配符 (%)。

我怎样才能完成这项任务?重新设计表格不是一种选择,因为它是正在使用的现有表格。

编辑:对不起,我使用的是 SQL Server (2005)。

0 投票
2 回答
125 浏览

sql - 需要子查询帮助

我需要得到 2 个汇总数字,但是我遇到了问题,因为一个是针对总订单的,一个是针对不完整的订单的。这些使用相同的初始查询,但是未完成的订单有一个额外的 where 子句。可以将这些放入查询中,以便我只获得 2 列。我以前做过内部查询,但我从来没有用 2 个不同的 where 子句做过一个?!任何想法都非常受欢迎

用于总订单的查询即时消息是:

使用订单不完整查询即时消息:

0 投票
3 回答
996 浏览

sql - 使用外键更新子查询问题

我记错了这个模板表的键是什么,因此我添加了错误的字段作为外键。现在我需要添加外键,并且我想根据已经填充的其他字段填充它的值。我开始尝试使用更新语句来做到这一点,但我不知道该怎么做。

我的架构的一部分:

产品表:

我添加了 TemplateID,但它还没有数据并且可以为空。

模板表:

我想使用 Templates 表为 Products 表中的每个 TemplateName 找到匹配的 TemplateID,并将其填写到 Products 表中的外键引用中。

我可以使用 Update 中的子查询来执行此操作,还是需要编写某种存储过程?我正在使用 Sql Server 2008

0 投票
4 回答
6108 浏览

sql - MySQL添加总列

我需要查询此数据库以获取每一行,以及结果的列值之一的 SUM。我可以使用 php 来获取总值,但是我需要运行两个循环,一个来获取总值(位于结果上方的顶部)。所以我更喜欢查询来捕获它并只创建一个“总”行,但我让它工作的唯一方法是使用基本上是原始查询重复的子查询。有没有更好的办法?

上述工作和输出:

这是我需要的,但可能不是获得它的最佳方式。

0 投票
4 回答
37313 浏览

sql - Oracle:将子查询中的多个结果组合成一个逗号分隔值

我正在尝试将单列子查询转换为以命令分隔VARCHAR的类型的值列表。

这与此问题相同,但适用于 Oracle 而不是 SQL Server 或 MySQL。

0 投票
6 回答
29350 浏览

sql - 我应该在子查询中使用 Top(1)

示例查询:

因此,如果您可以阅读 SQL,您应该会看到我正在执行几个相关的子查询来缩小 join 的结果。(是的,这太简单了)。

在某些情况下,子查询:

可以返回超过 1 个值,这会导致错误

“子查询返回的值超过 1 个。当子查询跟随 =、!=、<、<=、>、>= 或将子查询用作表达式时,这是不允许的。”

我完全期待。这显然不是一件好事,我有代码(希望)首先防止这些重复项进入数据库(即表 B应该只有 1 行与

标准),但是最终用户如果没有创造性地寻找我想不出的破坏软件的方法,那将一事无成。

所以现在我的问题:

将第一个子查询更改为

防止用户在/如果(希望永远不会)出现这种情况时看到错误,或者让错误发生。我倾向于不添加顶部语句并让错误出现,而不是让用户看到可能不正确的数据。我想知道在这种情况下是否有人对最佳实践有任何想法......

0 投票
1 回答
2461 浏览

sql-server - 如何在 Sql 2008 中执行此空间查询?

我正在尝试在 sql 2008 中进行空间查询-> 对于给定的 POI 列表(兴趣点、长/纬度GEOGRAPHY数据),它们存在于哪些邮政编码中(多面GEOGRAPHY数据)。

所以这是我尝试过的查询,但它在语法上不正确:-

所以这意味着我传入一个POI Id 的 csv 列表并拆分它们。这不是问题..这是我在STIntersects. 那是无效的。

所以..有什么建议吗?