不是唯一的表/别名

Mal*_*001 28 mysql mysql-error-1066

我收到了错误 ERROR 1066 (42000): Not unique table/alias:

我无法弄清楚它有什么问题.

SELECT Project_Assigned.ProjectID, Project_Title, Account.Account_ID, Username, Access_Type
FROM Project_Assigned 
JOIN Account 
  ON Project_Assigned.AccountID = Account.Account_ID
JOIN Project
  ON Project_Assigned.ProjectID = Project.Project_ID
where Access_Type = 'Client';
Run Code Online (Sandbox Code Playgroud)

She*_*hef 17

尝试

    SELECT pa.ProjectID, p.Project_Title, a.Account_ID, a.Username, a.Access_Type, c.First_Name, c.Last_Name
      FROM Project_Assigned pa
INNER JOIN Account a
        ON pa.AccountID = a.Account_ID
INNER JOIN Project p
        ON pa.ProjectID = p.Project_ID
INNER JOIN Clients c
        ON a.Account_ID = c.Account_ID
     WHERE a.Access_Type = 'Client';
Run Code Online (Sandbox Code Playgroud)

  • @Shef - 您是否有关于此查询中需要表别名的原因的更多信息?我无法使用MySQL 5.0重现错误消息: - ? (2认同)
  • 嗨 Álvaro 可能是因为两个连接 - `JOIN Account ON Project_Assigned.AccountID = Account.Account_ID JOIN Project ON Project_Assigned.ProjectID = Project.Project_ID` 与他们,编译器不知道哪些表被引用,因为像“ProjectID”这样的字段" 不是唯一的 - 它们可能来自任何一个表,因此编译器可能会抱怨而不是猜测......除非您使用别名:) 经验法则,在加入时使用别名并在引用中明确。 (2认同)
  • 不赞成投票!为了帮助他人学习,请始终添加评论并解释您的解决方案为何起作用。 (2认同)