为什么以下工作不起作用?
SELECT name FROM (SELECT name FROM agentinformation)
我猜我对SQL的理解是错误的,因为我本以为这会返回与
SELECT name FROM agentinformation
内部的select语句是否不创建外部SELECT语句然后查询的结果集?
为什么以下工作不起作用?
SELECT name FROM (SELECT name FROM agentinformation)
我猜我对SQL的理解是错误的,因为我本以为这会返回与
SELECT name FROM agentinformation
内部的select语句是否不创建外部SELECT语句然后查询的结果集?
Answers:
您需要给子查询加上别名。
SELECT name FROM (SELECT name FROM agentinformation) a
或者更明确
SELECT a.name FROM (SELECT name FROM agentinformation) a
where
子句将在哪里进行外部查询?
select
不带别名的第一个。
Joe Stefanelli提供的答案已经是正确的。
SELECT name FROM (SELECT name FROM agentinformation) as a
我们需要为子查询创建别名,因为查询需要一个表对象,该对象将从为子查询创建别名中获得。从概念上讲,子查询结果将替换为外部查询。由于在外部查询中需要一个表对象,因此需要对内部查询进行别名。
包含子查询的语句通常采用以下形式之一:
嵌套子查询的更多示例。
IN / NOT IN –该运算符在内部查询执行后获取内部查询的输出(可以为零或多个值),并将其发送到外部查询。然后,外部查询将获取所有匹配的[IN运算符]或不匹配的[NOT IN运算符]行。
ANY – [> ANY或ANY运算符获取内部查询产生的值的列表,并获取所有大于列表最小值的值。的
例如> ANY(100,200,300),ANY运算符将获取所有大于100的值。
例如> ALL(100,200,300),ALL运算符将获取所有大于300的值。