问题标签 [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.
sql - SQL:需要根据子查询限制结果集
我遇到了一个相当奇怪的问题。我有以下示例数据可以在 mysql 数据库中使用:
发生的事情是另一个进程(不受我控制)正在接收数据包,并将它们直接存储到数据库中,并带有到达时间的时间戳。数据包应该以突发形式到达...... a,b 将彼此靠近并被索引为 1 和 2,每个数据包包含传输的数据包的“总数”。key 是一个普通的自增主键。
我需要的是一个视图,它将显示最近到达的列表(部分列表,如果不是所有的数据包都已经到达,是可以接受的)。
对于上述查询,理想情况下结果应该只是“f”,但我没有看到这样做的方法。如果我们不能以其他方式得到它,返回“a”和“f”是可以接受的。换句话说,select 语句捕获的少量额外数据并不是什么大问题。对于“f”到达之前的时间段,正确的返回是 c、d 和 e。
我的一般想法是这样的:
正如你们中的一些人可能已经注意到的那样,您不能在 LIMIT 子句中执行子查询(至少对于 mysql)。有没有人有另一种方法来解决这个问题?通过将 JOIN 嵌套到最近 id 的小列表中,可以使上面的查询更加清晰,但这仍然会在子查询中留下 LIMIT 子查询问题。
作为一个两阶段查询,这是相对微不足道的。问题是它需要成为 VIEW 的定义选择语句。
编辑以修复错误的 sql 示例
mysql - 我可以在 INSERT 语句中使用子查询吗?
我需要在表中插入一行,其中一个字段值是从另一个表中计算出来的。与其进行两次查询并冒着竞争条件的风险,我认为最好在一个语句中完成所有操作。
...但这不起作用。有没有一种方法可以在一个声明中实现这一目标?如果没有,你的建议是什么?
sql - Mysql子查询问题
鉴于这两个表:
我怎样才能找到所有在0以上Foo.name
没有对应的s Bar,value
?
例如:
sql - 加入查询或子查询
开发人员何时使用联接而不是子查询是否有经验法则,或者它们是否相同。
sql - 如何从两个表中选择不包含在映射表中的值?
可以说我有以下表格:
- 顾客
- 产品
- 客户产品
有没有办法从客户和产品表中进行选择,其中值不在映射表中?基本上我需要一份他们不拥有的客户和产品的匹配列表。
另一个转折点:我需要为每个产品配对一个客户。所以如果 5 个客户没有产品 A,那么只有查询中的第一个客户应该有产品 A。所以结果看起来像这样:
(假设所有客户都拥有产品 B,并且不止一个客户拥有产品 A、C 和 D)
- 客户 1,产品 A
- 客户 2,产品 C
- 客户 3,产品 D
最后的转折:我需要将此查询作为 SQL Sever 中 UPDATE 语句的一部分运行。所以我需要从第一行取值:
客户 1,产品 A
并将客户记录更新为类似
但如果我能在一个 SQL 语句中完成整个过程,那就太好了。所以我运行了一次查询,它用他们不拥有的产品更新了 1 个客户。希望这不会让您感到困惑!提前致谢!
mysql - 在 MySQL 中缓存/重用子查询
我有一个非常复杂的 MySQL 查询,其中包括三次使用相同的子查询。MySQL 会实际运行子查询 3 次吗?(这是一个昂贵的。)如果是这样,我有没有办法告诉 MySQL 保存或缓存结果,所以它不会那样做?我可以将数据保存在一个大数组中,然后将其重新输入 MySQL,但我不想像那样将它移出并放回数据库中。
这是出现 3 次的子查询:
这是查询出现的完整查询的示例:
sql - SQL 查询问题(可能的联接/子查询?)
我有两张表(Management和Employee)。
管理表跟踪过去几年管理 X 公司的不同管理团队。每个管理团队都有一个ID(即:managementnr),每个团队都有一个CEO(即ceoname)。
员工表跟踪为 X 公司工作的员工(基本上只是他们的姓名和哪个管理团队雇用了他们)
这是SQL代码:
我正在尝试形成一个 SQL 查询来获取雇用最多员工的 managementNR。我试过使用:
但我不断得到:
(我正在使用甲骨文)
经过几个小时的 Google-fu,我终于明白了这个错误的含义,但是我仍然想不出任何其他方式来形成这个查询。我试过使用子查询/连接,但仍然没有。一般来说,我对 SQL 很陌生。如果有人可以提供帮助,我将不胜感激!
感谢您的宝贵时间 =]
--Evan Lestrange
sql - CTE 和子查询的区别?
有两个版本的答案,一个使用 asub-query
另一个使用 aCTE
来解决相同的问题。
那么,使用 aCTE (Common Table Expression)
而不是“子查询”有什么好处(因此,查询实际在做什么更具可读性)
使用CTE
over的唯一好处sub-select
是我实际上可以将sub-query
. 当 CTE 用作简单(非递归)CTE 时,这两者之间还有其他区别吗?
mysql - 什么会导致查询在使用子查询时运行缓慢,但在单独运行时不会?
我有类似以下内容:
问题是查询需要非常非常长的时间(> 2 分钟),但是如果我采用子查询,单独运行它,内爆 id 并将它们插入到主查询中,它的运行时间不到 1 秒,包括数据检索和内爆。
我已经检查了有关方法和密钥的说明是否正确使用并且方式相同。子查询返回的 ID 不超过 200 个。
什么可能导致子查询方法花费这么长时间?
顺便说一句,我知道上面的查询可以用连接编写,但我的查询不能——这只是一个简化版本。
使用 MySQL 5.0.22。