数据库的SQL语句中,嵌套查询和连接查询有什么区别,说的详细的

To put it bluntly, nested queries are like nested cakes. Subquery classes are like each layer of the pie, while join queries directly use JOIN to join two pies together.其实很简单。
Joined query efficiency is higher than nested because joins can directly optimize the execution order at the database level.
Let's talk about the most important thing first, more efficient connection queries. For example, in the project we ran last year, the nested query took about 2 minutes, but after using JOIN, the query time was shortened to 3 0 seconds. Another point is that JOIN can optimize performance by changing the order. For example, scanning tables with fewer records first can reduce overall query time.还有另一个重要的细节。
If you nest a query, the database will always look for the subquery first, which can lead to poor performance.
At first I thought nested queries were simpler but then I found out that was wrong.它隐藏了很多性能问题。
等等,还有别的事。
Although a join query is effective, writing it can be more complicated than nesting.
So my suggestion is if you are doing join queries you can also try using JOIN. It can not only improve efficiency but also make your query code clearer.你怎么认为?

sql嵌套查询怎么写

嵌套SQL查询是首先计算一个小查询,然后使用这个小查询的结果来检查另一个表。
Just like using your mobile phone to call customer service first, customer service will check the information for you, and the result you get is the information you want.
The steps are simply: 1 、写一个小查询:首先从表中选择自己需要的数据,比如根据条件选择几行几列。
2 . 将迷你查询的结果括在括号中:这样它就成为子查询。
3 . 在外部键入另一个大查询,并使用该子查询的结果执行更多搜索。









一个 ID 可以有 1 000 个身份,这意味着您的 ID 会让您走得更远。



SQL 选择 CUSTOMER_NAME,SUM(销售额)为 TOTAL_SALES 来自客户 Where is the customer ID located? 选择客户 ID 从 巴巴多斯 where sales_amount > 1 000 );
注意:
子查询可以嵌套在多个级别,就像俄罗斯套娃一样。

多个子查询可以在一个大型查询中一起使用。

子查询必须使用相关列或连接与较大的外部查询表对齐。

子查询的结果必须与较大的外部查询相匹配,且类型和数量必须一致。

看看这个例子并亲自理解它。
如果有什么不清楚的地方,我们就先做吧。

嵌套查询sql语句

嵌套查询...说白了,就是在一个SELECT语句中嵌套一个SELECT语句。
这在 SQL 中很常见。

单行子查询:子查询只返回一行数据。
例如,如果您想检查特定人员的工资,子查询将返回包含工资数据的行。
主查询使用等号、大于号等比较符号进行比较。
我记得当我在做这件事的时候,我很长一段时间都很难理解with和without。

多行子查询:子查询返回多行。
此时不能使用等号,必须使用IN、ALL、ANY。
IN 简单地匹配子查询中的每个值; ALL 只需要大于所有值即可;每个值都必须更大。
例如,如果要检查销售业绩是否超过所有区域的销售额,则必须使用 ALL。

标量子查询:返回一个值,例如当前日期。
只需使用它即可,无需考虑太多。
上次我用当前日期编写更新语句时,我只是使用了 CURRENT_DATE。

列表子查询:返回整列数据。
主查询中的一个字段与此匹配。
例如,如果您检查所有订单号,子查询将返回所有订单号的列表。
我记得上次写这篇文章时,我写了IN,后面跟着括号。
这给了我一个错误,几乎没有注意到它。

行子查询:返回一行和多列。
主要查询是与它进行比较。
这个用的比较少。
我曾经编写过一个使用行子查询作为条件的复杂查询。
写完后发现性能极其缓慢。

表子查询:返回多行多列,相当于临时表。
可以使用 AS 后跟别名,稍后直接将其用作表。
例如,要检查所有订单和客户信息,子查询返回订单表和客户表之间的映射结果。
上次我写这篇文章时,当使用表子查询时,我忘记添加 AS,整个查询崩溃了。

说实话,嵌套查询很好用,但是写太多就会变得混乱。
特别是如果IN和ALL混淆或者AS忘记了,调试会花费很长时间。
尤其是当数据量很大的时候,性能真的很糟糕。
上次写了一个三层嵌套的项目,结果花了两个小时才出结果,还被老板骂了。
所以写之前需要仔细设计,不要盲目嵌套。