我正在创建一个使用两次来自同一表的数据的 View 。结果,相同的列名出现两次。

因此,我需要给这些列起别名。如果我要这样做,我会写成:

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.*):
|  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

关于mysql - SELECT *列的MySQL别名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8341136/

10-15 16:15