当前位置:  开发笔记 > 后端 > 正文

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

如何解决《Sql语法:在select(subselect)中选择不带from子句作为子查询》经验,为你挑选了0个好方法。

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

SELECT id, (SELECT name) FROM t

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

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

SELECT id, (SELECT name FROM t AS t1 where t1.id=t2.id) FROM t AS t2

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

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

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

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有