相关疑难解决方法(0)

Sql语法:在select(subselect)中选择不带from子句作为子查询

在编辑一些查询以添加没有值的列的替代方法时,我不小心写了这样的东西(这里是简单的版本):

SELECT id, (SELECT name) FROM t
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,MySQL没有抛出任何错误,但完成了查询,给出了我的预期结果(name列值).我试图找到有关它的任何文档,但没有成功.

这是SQL标准还是MySQL专业?
我可以确定此语法的结果实际上是来自同一(外部)表的列值吗?扩展版本是这样的:

SELECT id, (SELECT name FROM t AS t1 where t1.id=t2.id) FROM t AS t2
Run Code Online (Sandbox Code Playgroud)

EXPLAIN报告No tables usedExtra列前的版本,我认为这是非常好的.

这是SqlFiddle上的一个简单的小提琴(它为我保留时间,我希望你有更好的运气).

澄清:我知道子查询,但我总是编写子查询(相关或不相关),暗示了一个表可供选择,因此在执行计划中引起了额外的步骤; 我的问题是这个语法及其给出的结果,在MySQL中似乎没有任何返回预期值.

mysql sql mysql-5.6

8
推荐指数
1
解决办法
2376
查看次数

标签 统计

mysql ×1

mysql-5.6 ×1

sql ×1