【问题标题】:MYSQL Alias: Unable to give a name to new tableMYSQL 别名:无法为新表命名
【发布时间】:2020-09-23 16:04:31
【问题描述】:

我有 3 个表,我想加入所有这些表,并为这个新表命名为“newtab”。 我这样做了:

(select s1.Name as name, s1.ID as id, f1.Friend_ID as id, p1.Salary as sal
from Students as s1, Friends as f1, Packages as p1
where s1.ID=f1.ID AND s1.ID=p1.ID
) as newtab

现在的问题是使用“as newtab”时显示错误。 如何在 MYSQL 中为这个新表命名?

【问题讨论】:

  • 这是您的完整查询代码吗?
  • 如果要创建新表必须使用CREATE TABLE newtab SELECT ...
  • 不,但这就是您回答我的问题所需要的全部内容。
  • akina,我想选择这个新表的第一列。我该怎么做?
  • 请明确您的目标 - 您是否需要一个检索组合数据的查询或创建一个存储此类数据的静态表。

标签: mysql alias


【解决方案1】:

它自己的代码段在语法上不正确,您需要一个主查询

例如

SELECT * FROM
(select s1.Name as name, s1.ID as id, f1.Friend_ID as id, p1.Salary as sal
from Students as s1, Friends as f1, Packages as p1
where s1.ID=f1.ID AND s1.ID=p1.ID
) as newtab

您还应该用显式连接替换逗号连接

“不,但这就是你回答我的问题所需要的全部内容”——那么问题的答案是,作为独立代码,这在语法上是不正确的——但你已经知道了。

【讨论】:

  • 谢谢你。知道了。但它没有在 MYSQL 中使用“as”。
  • as 对于任何 sql 方言中的别名都是可选的。
【解决方案2】:

您正在尝试为查询提供一个不可能的别名,这仅在 [...from table_name as alias_name...] 中是合理的

select s1.Name as name, s1.ID as id, f1.Friend_ID as id, p1.Salary as sal

不需要为具有相同别名的列名提供别名。当您想要不同的名称时使用别名 喜欢:

select s1.Name as Student_Name, s1.ID as Student_ID, f1.Friend_ID, p1.Salary as sal

请注意:如果我不指定别名,则从 s1.Name 列中,“名称”将默认显示为列名。

select s1.Name as name, s1.ID as id, f1.Friend_ID as id, p1.Salary as sal
from Students as s1, Friends as f1, Packages as p1
where s1.ID=f1.ID AND s1.ID=p1.ID;

删除“as newtab”,查询应该可以正常工作。

【讨论】:

    猜你喜欢
    • 2015-11-10
    • 2014-01-21
    • 2014-02-18
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多