MySQL 5.6中的内联查询

MySQL 5.6中的内联查询,mysql,sql,select,subquery,union,Mysql,Sql,Select,Subquery,Union,有人能告诉我如何在MySQL 5.6中使用内联查询吗 我正在尝试做一件简单的事情!我正在尝试编写一个查询,在该查询中,我从数据库中的一个表中进行选择,并与我正在尝试动态创建的内联表进行连接。 这是一个单列表,我在创建多行表时遇到问题 内联查询示例 select * from ( (select 'filename1' as file_name) as t1 union (select 'filename2' as file_name) as t2 ); 如果

有人能告诉我如何在MySQL 5.6中使用内联查询吗 我正在尝试做一件简单的事情!我正在尝试编写一个查询,在该查询中,我从数据库中的一个表中进行选择,并与我正在尝试动态创建的内联表进行连接。 这是一个单列表,我在创建多行表时遇到问题

内联查询示例

select * from (
      (select 'filename1' as file_name) as t1
      union
      (select 'filename2' as file_name) as t2
);
如果我在不使用第二条select语句的情况下运行此查询,那么它会工作。 但如果我用这两个select语句运行它,并尝试将它们合并,它就会崩溃,并抱怨我在“as t2”附近的SQL语法中有错误


非常感谢您的帮助。

显然这是一个过于简化的示例,但是。。。
联合
查询的成员不使用别名。不过,您使用
联合创建的派生表确实需要一个。因此:

select * from (
      select 'filename1' as file_name
      union all
      select 'filename2'
) t;
请注意:

  • 无需用括号括住
    联合
    成员(除非您需要单个
    order by
    子句)

  • 无需为第二个成员中的列添加别名:但仍以第一个查询中定义的别名为准

  • 除非您确实希望删除重复项,否则请使用
    union all
    而不是
    union
    :这样更有效,并且使意图更明确

最后:就您的查询而言,不需要外部查询。这相当于:

select 'filename1' as file_name
union all 
select 'filename2'
好处:在MySQL的最新版本中,您可以使用
values行()
构造函数:

select *
from (values row('filename1'), row('filename2')) t(filename)

显然是一个过于简化的例子,但是。。。
联合
查询的成员不使用别名。不过,您使用
联合创建的派生表确实需要一个。因此:

select * from (
      select 'filename1' as file_name
      union all
      select 'filename2'
) t;
请注意:

  • 无需用括号括住
    联合
    成员(除非您需要单个
    order by
    子句)

  • 无需为第二个成员中的列添加别名:但仍以第一个查询中定义的别名为准

  • 除非您确实希望删除重复项,否则请使用
    union all
    而不是
    union
    :这样更有效,并且使意图更明确

最后:就您的查询而言,不需要外部查询。这相当于:

select 'filename1' as file_name
union all 
select 'filename2'
好处:在MySQL的最新版本中,您可以使用
values行()
构造函数:

select *
from (values row('filename1'), row('filename2')) t(filename)

天啊。非常感谢你,伙计。它起作用了!我尝试在没有别名的情况下使用内部select语句,但将语句保留在括号中,并不断出现错误,指出每个子查询都必须有自己的别名。我不认为mariadb与row()构造具有奇偶性,并使用表别名命名列,但至少可以在第二行之后使用值,如OMG。非常感谢你,伙计。它起作用了!我尝试在没有别名的情况下使用内部select语句,但将语句保留在括号中,并不断出现错误,指出每个子查询都必须有自己的别名。我不认为mariadb与row()构造具有奇偶性,并使用表别名命名列,但至少可以在第二行之后使用值,如