查询数据库时不是唯一的表/别名

时间:2015-12-10 17:59:06

标签: mysql database phpmyadmin

我正在运行查询

SELECT `transactions`.`transaction_id`,`transactions`.`from_user_id`,`transactions`.`to_user_id`,`transactions`.`amount`,`transactions`.`description`,`users`.`first_name`,`users`.`last_name`,`transactions`.*,`users`.`first_name`,`users`.`last_name`,`transactions`.*,`users`.`user_id`,`users`.`first_name`,`users`.`last_name`,`transactions`.*,`users`.`user_id`,`users`.`first_name`,`users`.`last_name` FROM transactions
LEFT JOIN `login`.`users` ON `transactions`.`to_user_id` = `users`.`user_id` 
LEFT JOIN `login`.`users` ON `transactions`.`from_user_id` = `users`.`user_id` 

就此数据库Database Schema

当我尝试运行查询时,收到错误#1066 - Not unique table/alias: 'users'。我试图获取一个交易清单,其中包含参与交易的两个用户的名字。

1 个答案:

答案 0 :(得分:1)

如下:

SELECT t.*
     , u1.user_id    to_user_id
     , u1.first_name to_first_name
     , u1.last_name  to_last_name
     , u2.user_id    from_user_id
     , u2.first_name from_first_name
     , u2.last_name  from_last_name
  FROM transactions t
  LEFT 
  JOIN users u1
    ON u1.user_id = t.to_user_id
  LEFT 
  JOIN users u2
    ON u2.user_id = t.from_user_id 

请注意,名为amountbalance的列不太可能是FLOAT。见DECIMAL。