为啥我们要合并几个select语句
Posted
技术标签:
【中文标题】为啥我们要合并几个select语句【英文标题】:Why do we combine several select statements为什么我们要合并几个select语句 【发布时间】:2015-09-10 11:45:35 【问题描述】:这个问题可能有点傻,但是我们为什么要在 SQL 中组合几个 select 语句。我还没有找到答案。 示例:
select OrderID from (SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName);
【问题讨论】:
准备做更复杂的事情,或者剥离更复杂的事情?就目前而言,它没有多大意义...... 【参考方案1】:线索在“关系数据库”的“关系”部分
关系是一组行,因此可以是:
-
表中的行
从视图中投影的行
从查询中投影的行
从公用表表达式投影的行
理论上,所有这些都是相同的,因此从表中选择在逻辑上与从视图或从另一个查询中选择相同,并且连接两个表在逻辑上与连接两个查询相同。
至于为什么这样做,这里有三个不错的理由:
-
为了避免必须将临时结果集保存到某个结构中然后再次读出。
因为在某些情况下,无法通过 WHERE 或 HAVING 子句对查询放置条件,而谓词必须放在结果集上。
编码方便。
【讨论】:
【参考方案2】:此查询的输出将是客户表中有客户的所有订单,并且不会给出客户表中没有任何条目的任何订单。此外,订单将按其 customerName 值的升序排列。
【讨论】:
以上是关于为啥我们要合并几个select语句的主要内容,如果未能解决你的问题,请参考以下文章
mysql insert into select 语句为啥会造成死锁