在mysql union中,别名是否需要具有唯一的名称

在mysql union中,别名是否需要具有唯一的名称,mysql,sql,Mysql,Sql,我做了以下工作,似乎没有遇到任何问题。在与联合结合的不同查询中使用同一别名是否不合适 SELECT table1.a,t.b,t.c FROM table1 INNER JOIN table2 AS t ON t.table1_id=table1.id WHERE t.fk=123 SELECT table2.a,t.b,t.c UNION FROM table3 INNER JOIN table4 AS t ON t.table3_id=table3.id WHERE t.fk=123; 联

我做了以下工作,似乎没有遇到任何问题。在与联合结合的不同查询中使用同一别名是否不合适

SELECT table1.a,t.b,t.c
FROM table1
INNER JOIN table2 AS t ON t.table1_id=table1.id
WHERE t.fk=123
SELECT table2.a,t.b,t.c
UNION
FROM table3
INNER JOIN table4 AS t ON t.table3_id=table3.id
WHERE t.fk=123;

联合
的单独部分被视为单独的子查询。可以对这两个表中的表使用相同的别名,因此在编写查询时不会出现问题。列的名称来自
联合
中的第一个子查询,而与后续子查询中的名称无关


MySQL和其他数据库也是如此。

联合的独立部分被视为独立的子查询。可以对这两个表中的表使用相同的别名,因此在编写查询时不会出现问题。列的名称来自
联合
中的第一个子查询,而与后续子查询中的名称无关


MySQL和其他数据库也是如此。

不,没关系。这些查询具有不同的作用域,因此可以正常工作

但举例来说,这不会:

select *
from
  Table1 a
  inner join Table2 a  .... 
现在,您尝试在同一范围内引入两次别名“a”


经验法则:如果你做了一些不被允许的事情:MySQL会告诉你。如果它起作用,那就好了。就这么简单。:)

不,没关系。这些查询具有不同的作用域,因此可以正常工作

但举例来说,这不会:

select *
from
  Table1 a
  inner join Table2 a  .... 
现在,您尝试在同一范围内引入两次别名“a”


经验法则:如果你做了一些不被允许的事情:MySQL会告诉你。如果它起作用,那就好了。就这么简单。:)

我认为这种质疑是行不通的。但是对于联合和别名没有,但是sintaxis:
其中。。。选择。。。UNION
应该是
,其中。。。UNION SELECT…
我认为该查询不起作用。但是对于联合和别名没有,但是sintaxis:
其中。。。选择。。。UNION
应该是
,其中。。。联合选择…