【问题标题】:Error in Query (1066): Not unique table/alias: 'useraccounts'查询错误(1066):不是唯一的表/别名:'useraccounts'
【发布时间】:2020-03-06 07:29:30
【问题描述】:

我想从用户表中获取电子邮件和密码,其中电子邮件是主键,而针对电子邮件,我想从帐户 ID 是外键的用户帐户中获取余额和 AccountID。并且针对那个外键,我想从表帐户中获取 accountNo

SELECT `user`.`email`, `user`.`passwrd`, `useraccounts`.`Balance`, `useraccounts`.`AccountID`, `accounts`.`AccountNo`
FROM `user` , `accounts`
LEFT JOIN `useraccounts` ON `user`.`email` = `useraccounts`.`email` 
LEFT JOIN `useraccounts` ON `accounts`.`AccountID` = `useraccounts`.`AccountID` 

SELECT `user`.`email`, `user`.`passwrd`, `useraccounts`.`Balance`, `useraccounts`.`AccountID`, `accounts`.`AccountNo`
FROM `user` , `accounts`
LEFT JOIN `useraccounts` ON `user`.`email` = `useraccounts`.`email` 
LEFT JOIN `useraccounts` ON `accounts`.`AccountID` = `useraccounts`.`AccountID` 

错误是 #1066- 不是唯一的表/别名:useraccountsenter image description here

【问题讨论】:

  • 那是真的 - 你被留下两次加入用户帐户,你应该给他们两个别名(以及选择中的列)
  • 修复当前错误后,您可能会遇到此问题 - '如果在存在连接条件时将逗号连接与其他连接类型混合使用,则会出现格式为未知列 'col_name' 的错误' - dev.mysql.com/doc/refman/8.0/en/join.html
  • 你能纠正这个查询吗?

标签: mysql qsqlquery


【解决方案1】:

'你能纠正这个查询吗' - 也许这个

SELECT `user`.`email`, `user`.`passwrd`, `useraccounts`.`Balance`, `useraccounts`.`AccountID`, `accounts`.`AccountNo`
FROM `user` 
LEFT JOIN `useraccounts` ON `user`.`email` = `useraccounts`.`email` 
LEFT JOIN `accounts` ON `accounts`.`AccountID` = `useraccounts`.`AccountID` 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多