我正在创建一个使用两次来自同一表的数据的视图。结果,相同的列名出现两次。
因此,我需要给这些列起别名。如果我要这样做,我会写成:
SELECT u.* as 'one_*', u2.* as 'two_*' FROM users u LEFT JOIN relationships r ON u.id=r.id_one LEFT JOIN users u2 ON r.id_two=u2.id
但这是行不通的。谢谢你的帮助!
编辑:
这是我实际上得到的数据:
| id | name | id | name | 1 john 2 alex
这是我想获取的数据(同时仍使用SELECT u.*, u2.*):
SELECT u.*, u2.*
| id | name | brother_id | brother_name | 1 john 2 alex
您不能使用*别名。别名可用于单个列。
*
您必须改为为每列加上别名。
因此,不幸的是,如果您有很多列,则需要执行以下操作:
SELECT u.col1 AS u_col1 , u.col2 AS u_col2 , u.col3 AS u_col3 -- etc , u2.col1 AS u2_col1 , u2.col2 AS u2_col2 , u2.col3 AS u2_col3 -- etc FROM table1 AS u -- INNER JOIN / LEFT OR RIGHT OUTER JOIN / , table2 AS u2