如何在MySQL查询中更改表别名

时间:2017-03-28 02:25:35

标签: mysql phpmyadmin

我想在员工表中显示员工的第一个名字,但是当我执行查询时,它总是会返回此错误

  

#1066 - 不是唯一的表/别名

这是我的疑问:

SELECT `employee`.`Fname`
FROM `employee`
LEFT JOIN `company07`.`employee`
ON `employee`.`Ssn` = `employee`.`Super_ssn`
ORDER BY `employee`.`Fname` ASC

问:为什么MySQL返回错误1066?

问:如何更改表别名以避免错误1066?

1 个答案:

答案 0 :(得分:0)

有两个具有相同名称的表格引用" employee"。这不是有效的。

解决方法是将别名分配给其中一个表引用。这将使名称​​唯一

我们经常为每个表引用分配一个简短的别名。我们使用该别名来限定列引用。

在以下示例中,我们将别名e分配给其中一个表,将别名c分配给另一个。

 SELECT e.`fname`
   FROM `employee` e
   LEFT 
   JOIN `company07`.`employee` c
     ON c.`ssn` = e.`super_ssn`
  ORDER
     BY e.`fname` ASC 

我只是猜到了哪个表" ssn"来自哪个表" super_ssn"来自。在原始查询中,它含糊不清。两者都使用表名employee进行限定。但我们不知道哪些表格被引用。 MySQL有同样的问题......哪个表"员工"参考。这就是为什么MySQL要求每个表名(或别名)都必须是唯一的。