0

鉴于这是在 mysql 脚本中定义的:

`Project1`.`Id` AS `Id1d334656-0d51-4bf6-bb08-6c25d01e7745` 

这是否意味着

`Project1`.`Id`

不再可以通过该名称访问,并且只能通过

`Project1`.`Id1d334656-0d51-4bf6-bb08-6c25d01e7745`

?

背景:这个脚本是由 MySqlConnector/net 生成的,这是生成的命令的一部分。

4

2 回答 2

2

别名没有表分配,所以它只是ID1d3346etc..... 如果他们这样做了,那将破坏别名的目的,例如

select table1.x AS abc, table2.x AS abc

将是一个错误,即使这两个别名来自不同的表。

于 2012-10-23T16:48:59.303 回答
1

是的。它很像在选择时重命名列。在查询之外,select应使用别名引用列,但在选择查询中,您应该使用表列,例如:

  select col1 as a
  from table b
  where col1 = 'xxx';

但在选择查询之外,应使用别名:

select a 
from (select col1 AS a From table) b
where a = 'xxxx';

如果您尝试使用表列,它将失败:

<<----FAILURE -->
select col1 
from (select col1 AS a From table) b
where a = 'xxxx';
于 2012-10-23T16:50:20.817 回答