gpt4 book ai didi

mysql - 帮助 MySQL 查询语法 : ERROR #1066 - Not unique table/alias

转载 作者:行者123 更新时间:2023-11-29 05:44:17 25 4
gpt4 key购买 nike

我有四个表,useruser_billingprofileuser_shippingprofileuser_address

用户: userId, dateCreated
user_billingprofile:用户ID、地址
user_shippingprofile:用户ID、地址
user_address:随机地址垃圾

这是我必须一次获得用户账单和运输资料的查询。

SELECT * FROM `user`
JOIN `user_billingprofile` ON `user`.`userId` = `user_billingprofile`.`userId`
JOIN `user_address` ON `user_billingprofile`.`currentAddress` = `user_address`.`addressId`
JOIN `user_shippingprofile` ON `user_shippingprofile`.`currentAddress` = `user_address`.`addressId`
JOIN `user_address` ON `user_shippingprofile`.`currentAddress` = `user_address`.`addressId`

我收到错误:#1066 - 不是唯一的表/别名:'user_address'有没有一种方法可以在同一个查询中两次访问表的情况下进行简单连接,并将两个结果分开?最好使用某种表前缀...

我有点迷路了。我知道我可以很容易地在两个单独的查询中做到这一点,但我想学习如何一次性完成这样的事情。

非常感谢任何帮助/建议/方向,谢谢!

最佳答案

你能发布你的表格结构吗?根据您的查询,我认为您需要考虑对其进行一些更改。

也就是说,您可以通过添加表别名来修复当前查询:

SELECT * FROM `user`
JOIN `user_billingprofile` ON `user`.`userId` = `user_billingprofile`.`userId`
JOIN `user_address` AS user_billing_address ON `user_billingprofile`.`currentAddress` = `user_address`.`addressId`
JOIN `user_shippingprofile` ON `user_shippingprofile`.`currentAddress` = `user_address`.`addressId`
JOIN `user_address` AS user_shipping_address ON `user_shippingprofile`.`currentAddress` = `user_address`.`addressId`

请注意我添加的 AS 子句。您可能还需要为列设置别名(而不是 SELECT * 您可能需要 SELECT user_shipping_address.address AS user_shipping_address_value, user_billing_address.address AS user_billing_address_value ... )

希望对您有所帮助!

关于mysql - 帮助 MySQL 查询语法 : ERROR #1066 - Not unique table/alias,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3936275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com