我想在员工表中显示员工的第一个名字,但是当我执行查询时,它总是会返回此错误
#1066 - 不是唯一的表/别名
这是我的疑问:
SELECT `employee`.`Fname`
FROM `employee`
LEFT JOIN `company07`.`employee`
ON `employee`.`Ssn` = `employee`.`Super_ssn`
ORDER BY `employee`.`Fname` ASC
问:为什么MySQL返回错误1066?
问:如何更改表别名以避免错误1066?
答案 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要求每个表名(或别名)都必须是唯一的。