我正在创建一个使用两次来自同一表的数据的视图。结果,相同的列名出现两次。
因此,我需要给这些列起别名。如果我要这样做,我会写成:
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语句显示表中的所有记录。查询如下 以下是输出 这是对多列