当前位置: 首页 > 面试题库 >

SELECT *列的MySQL别名

端木渝
2023-03-14
问题内容

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

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

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


 类似资料:
  • 开发环境参考: 以下选择语句在"未找到列'深度'"时失败: 此select语句使用命令级mysql作为 在MySQL Workbench版本中使用SQL查询时,select语句也会成功。5.2.4.7. 下面给出了相关的Java代码片段: 此外,我在谷歌搜索中发现,MySQL的别名行为在最近的版本中发生了变化。一个建议的修复方法是在MySQL连接字符串中附加,以恢复到原始行为,但这并没有纠正问题。

  • 问题内容: 假设我在MySQL数据库的表中有列。我想要做的是选择表中所有这4列的所有唯一值(仅唯一值)。我尝试了类似的东西: 这些都不起作用。有人可以帮忙吗? 谢谢 注意 我想要分别显示各列的不同值。不是价值的独特组合 问题答案: 能帮上忙吗?

  • 问题内容: 我正在尝试从以下位置移出旧数据: 复制所有列。我已经尝试过了,但是没有用: 注意:这些表是相同的,并已设置为主键。 问题答案: 手册中描述了正确的语法。尝试这个: 如果id列是一个自动递增的列,并且您在两个表中都已经有一些数据,那么在某些情况下,您可能希望从列列表中省略该id并生成新的id,以避免插入原来的ID表。如果您的目标表为空,那么这将不是问题。

  • 本文向大家介绍MySQL SELECT WHERE,包括了MySQL SELECT WHERE的使用技巧和注意事项,需要的朋友参考一下 示例 询问 结果 使用WHERE子句中的嵌套SELECT查询 该WHERE子句可以包含任何有效的SELECT语句以编写更复杂的查询。这是一个“嵌套”查询 询问 嵌套查询通常用于从查询中返回单个原子值以进行比较。 选择所有没有电子邮件地址的用户名 免责声明:比较整个

  • 本文向大家介绍MySQL SELECT...LIKE (%),包括了MySQL SELECT...LIKE (%)的使用技巧和注意事项,需要的朋友参考一下 示例 任意位置的“ adm”: 以“ adm”开头: 以“ adm”结尾: 正如%一个字符LIKE条款任意数目的字符匹配,_匹配字符一个字符。例如, 性能说明如果上有一个索引username,则 LIKE 'adm' 执行与`='adm'相同的

  • 本文向大家介绍MySQL Select语句DISTINCT对于多列?,包括了MySQL Select语句DISTINCT对于多列?的使用技巧和注意事项,需要的朋友参考一下 要了解多列的MySQL select语句DISTINCT,让我们看一个示例并创建一个表。创建表的查询如下 使用insert命令在表中插入一些记录。查询如下 使用select语句显示表中的所有记录。查询如下 以下是输出 这是对多列