SELECT*列的MySQL别名

Pio*_*oul 34 mysql alias

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

因此,我需要为这些列提供别名.如果我这样做,我会把它写成:

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
Run Code Online (Sandbox Code Playgroud)

但这不起作用.谢谢你的帮助!

编辑:

这是我实际获得的数据:

|  id  | name |  id  | name |
   1     john    2     alex
Run Code Online (Sandbox Code Playgroud)

这是我想要获得的数据(仍然使用a SELECT u.*, u2.*):

|  id  | name |  brother_id  | brother_name |
   1     john        2             alex
Run Code Online (Sandbox Code Playgroud)

Non*_*nym 27

您不能使用*别名.别名可用于单个列.

您必须为每列添加别名.

所以不幸的是,如果你有很多专栏,你需要去:

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
Run Code Online (Sandbox Code Playgroud)

  • 你不需要"AS".. u.col1 u_col1很好.不会缩短您的工作量,但可能会使代码更容易. (2认同)