首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决错误1060:使用视图->创建视图复制列名

如何解决错误1060:使用视图->创建视图复制列名
EN

Stack Overflow用户
提问于 2016-11-19 06:38:59
回答 2查看 11.2K关注 0票数 2

我正在尝试创建一个视图从萨基拉数据库(https://dev.mysql.com/doc/sakila/en/)连接一些表(在MySQL中),即我想要连接支付,员工和客户,并显示客户的姓名,员工的姓名,付款id和金额。我右键单击视图,然后创建表。我认为这个错误的存在是因为在staff表和customer表中都有名为first_name和last_name的列。我该如何解决这个问题呢?

我的代码:

代码语言:javascript
复制
CREATE VIEW `payment` AS
SELECT payment.payment_id, customer.first_name, customer.last_name, 
staff.first_name, staff.last_name, payment.amount
FROM payment INNER JOIN customer ON payment.customer_ID = customer.customer_ID
INNER JOIN staff ON payment.staff_ID = staff.staff_ID

错误消息:错误1060:重复的列名'first_name‘

如果我尝试使用别名,就像一些回答者建议的那样,我得到错误错误1347:'sakila.payment‘is not VIEW。

完全相同的代码在SQL文件中就像一个护身符,当我运行它时,它会创建我需要的表。这两种方法有什么不同?我应该使用哪一个?为什么它不能与视图->创建视图选项一起使用?

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-19 06:52:41

使用别名指定名称:

代码语言:javascript
复制
CREATE VIEW v_payment AS
    SELECT p.payment_id, c.first_name as customer_first_name, c.last_name as customer_last_name,
           s.first_name as staff_first_name, s.last_name as staff_last_name,
           p.amount
    FROM payment p INNER JOIN
         customer c
         ON p.customer_ID = c.customer_ID INNER JOIN
         staff s
         ON p.staff_ID = s.staff_ID;

first_namelast_nameselect列表中出现两次。上面的说明说明了该名称是用于客户还是员工。

票数 8
EN

Stack Overflow用户

发布于 2016-11-19 06:54:53

限制是列名必须是唯一的。

SELECT查询可能是有效的,但它确实返回同名的列。两个名称为first_name的列和两个名称为last_name的列。

当我们将查询用作视图(无论是内联视图还是存储视图)时,就会出现错误。

解决方法是通过提供列别名来重命名列,以便结果集中没有两个列具有相同的名称。例如:

代码语言:javascript
复制
SELECT payment.payment_id
     , customer.first_name   AS customer_first_name
     , customer.last_name    AS customer_last_name
     , staff.first_name      AS staff_first_name
     , staff.last_name       AS staff_last_name
     , payment.amount
  FROM payment 
  JOIN customer
    ON ...
  JOIN staff
    ON ...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40687011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档