Questions tagged «subquery»

“子查询”是模糊的SQL术语,用于描述查询中何时有多个“ SELECT”语句,或何时用于数据操作语言(DML)语句(即:DELETE,UPDATE,INSERT,MERGE)。子查询的SELECT语句始终位于方括号/括号内。

18
联接与子查询
我是一个老派的MySQL用户,并且始终喜欢JOIN子查询。但是如今,每个人都使用子查询,而我讨厌它。我不知道为什么 我缺乏理论知识来自行判断是否存在差异。子查询是否与a一样好JOIN,因此不必担心吗?
835 sql  mysql  subquery  join 

16
MySQL错误1093-无法在FROM子句中指定目标表进行更新
story_category我的数据库中有一个表,其中的条目已损坏。下一个查询返回损坏的条目: SELECT * FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 我试图删除它们执行: DELETE FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 但是我得到了下一个错误: #1093-您无法在FROM子句中指定目标表'story_category'进行更新 我该如何克服呢?

2
SQL Server中的嵌套选择语句
为什么以下工作不起作用? SELECT name FROM (SELECT name FROM agentinformation) 我猜我对SQL的理解是错误的,因为我本以为这会返回与 SELECT name FROM agentinformation 内部的select语句是否不创建外部SELECT语句然后查询的结果集?


6
使用子查询更新postgres中的表行
使用postgres 8.4,我的目标是更新现有表: CREATE TABLE public.dummy ( address_id SERIAL, addr1 character(40), addr2 character(40), city character(25), state character(2), zip character(5), customer boolean, supplier boolean, partner boolean ) WITH ( OIDS=FALSE ); 最初我使用插入语句测试了我的查询: insert into address customer,supplier,partner SELECT case when cust.addr1 is not null then TRUE else FALSE end customer, case when suppl.addr1 …

4
CTE,子查询,临时表或表变量之间是否存在性能差异?
在这个出色的SO问题中,讨论了CTE和之间的sub-queries差异。 我想特别问一下: 在以下哪种情况下,以下各项中的每一种都更有效/更快? CTE 子查询 临时表 表变量 传统上,我使用了大量的temp tables开发工具stored procedures-因为它们似乎比许多相互交织的子查询更具可读性。 Non-recursive CTE可以很好地封装数据集,并且可读性很强,但是在特定情况下有人可以说它们将始终表现更好吗?还是总是必须摆弄各种选项以找到最有效的解决方案? 编辑 最近有人告诉我,就效率而言,临时表是一个不错的首选,因为它们具有关联的直方图,即统计信息。

4
LATERAL和PostgreSQL中的子查询有什么区别?
由于Postgres具有LATERAL连接的能力,因此我一直在阅读,因为我目前为团队执行复杂的数据转储,其中包含许多效率低下的子查询,使得整个查询需要四分钟或更长时间。 我知道LATERAL联接可能会为我提供帮助,但是即使阅读了Heap Analytics中的此类文章,我仍然不太了解。 联接的用例是LATERAL什么?LATERAL联接和子查询之间有什么区别?

9
CTE和SubQuery之间的区别?
来自这篇文章如何在以下过程中使用ROW_NUMBER? 答案有两种版本,一种使用a sub-query,另一种使用a CTE来解决相同的问题。 现在,使用CTE (Common Table Expression)“子查询”而不是“子查询”有什么好处(因此,查询的实际可读性更高) 使用的唯一的优点CTE了sub-select,是我可以实际命名的sub-query。当将CTE用作简单(非递归)CTE时,这两者之间还有其他区别吗?

10
MySQL-SELECT WHERE字段IN(子查询)-为什么极慢?
我要检查的数据库中有几个重复项,因此,为了查看哪些重复项,我执行了以下操作: SELECT relevant_field FROM some_table GROUP BY relevant_field HAVING COUNT(*) > 1 这样,我将获得与related_field一起出现的所有行不止一次。该查询需要毫秒才能执行。 现在,我想检查每个重复项,因此我想可以在上述查询中选择带有some_table的每行以及一个related_field,因此我做到了: SELECT * FROM some_table WHERE relevant_field IN ( SELECT relevant_field FROM some_table GROUP BY relevant_field HAVING COUNT(*) > 1 ) 由于某种原因,这实际上是缓慢的(需要几分钟)。到底是什么使它变慢了?related_field已建立索引。 最终,我尝试从第一个查询创建视图“ temp_view” (SELECT relevant_field FROM some_table GROUP BY relevant_field HAVING COUNT(*) > 1),然后像这样进行第二个查询: SELECT * …
133 mysql  subquery  where-in 

10
如何在Laravel中执行此操作,子查询在哪里
如何在Laravel中进行以下查询: SELECT `p`.`id`, `p`.`name`, `p`.`img`, `p`.`safe_name`, `p`.`sku`, `p`.`productstatusid` FROM `products` p WHERE `p`.`id` IN ( SELECT `product_id` FROM `product_category` WHERE `category_id` IN ('223', '15') ) AND `p`.`active`=1 我也可以通过联接来做到这一点,但是我需要这种格式来提高性能。

8
SQL连接与SQL子查询(性能)?
我想知道我是否有类似这样的联接查询- Select E.Id,E.Name from Employee E join Dept D on E.DeptId=D.Id 和一个类似这样的子查询 - Select E.Id,E.Name from Employee Where DeptId in (Select Id from Dept) 当我考虑性能时,两个查询中的哪个查询会更快,为什么? 还有一段时间我应该优先选择另一个吗? 抱歉,这太琐碎了,之前问过,但是我对此感到困惑。另外,如果你们能建议我一些我可以用来衡量两个查询性能的工具,那将是很棒的。非常感谢!

6
如何使用具有多个结果的子查询将值插入表中?
非常感谢您的帮助。 也许这是一个很简单的问题,但我不是那个.. ;-) 我在SQL Server中有两个表: 文章 价格 现在,我想选择一组特定的ID,并使用这些ID将一些条目插入价格表。 例如(错误且不起作用的SQL) INSERT INTO prices (group, id, price) VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50); SQL错误->子查询具有多个值 感谢帮助
96 sql  insert  subquery 

2
FROM中的子查询必须具有别名
我有我在PostgreSQL中编写的查询,该查询返回错误消息: [Err]错误:第 3行:从(选择不同(可识别)AS AS_made_only_recharge 这是整个查询: SELECT COUNT (made_only_recharge) AS made_only_recharge FROM ( SELECT DISTINCT (identifiant) AS made_only_recharge FROM cdr_data WHERE CALLEDNUMBER = '0130' EXCEPT SELECT DISTINCT (identifiant) AS made_only_recharge FROM cdr_data WHERE CALLEDNUMBER != '0130' ) 我在Oracle中有一个类似的查询,工作正常。唯一的变化是我EXCEPT在Oracle中的位置已用MINUS关键字替换。我是Postgres的新手,不知道它要什么。处理此问题的正确方法是什么?

3
PostgreSQL'NOT IN'和子查询
我正在尝试执行此查询: SELECT mac, creation_date FROM logs WHERE logs_type_id=11 AND mac NOT IN (select consols.mac from consols) 但是我没有结果。我测试了一下,而且我知道语法有问题。在MySQL中,这样的查询可以完美地工作。我添加了一行以确保表mac中不存在该行consols,但仍未给出任何结果。

1
获取每个组中具有最高/最小的<内容>的记录
怎么做? 该问题的前标题是“ 在带有子查询的复杂查询中使用等级(@Rank:= @Rank + 1)-可以吗? ”,因为我一直在寻找使用等级的解决方案,但是现在我看到Bill所发布的解决方案是好多了。 原始问题: 我正在尝试组成一个查询,该查询将从给定定义顺序的每个组中获取最后一条记录: SET @Rank=0; select s.* from (select GroupId, max(Rank) AS MaxRank from (select GroupId, @Rank := @Rank + 1 AS Rank from Table order by OrderField ) as t group by GroupId) as t join ( select *, @Rank := @Rank + …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.