我想创建一个视图从Sakila数据库(https://dev.mysql.com/doc/sakila/en/)加入一些表(在MySQL中),即我想加入支付,员工和客户并显示客户名称,员工姓名,付款ID和金额。 我右键单击视图,然后创建表。 我认为这个错误是存在的,因为在staff表和customer表中都有名为first_name和last_name的列。我怎么能解决这个问题?如何解决错误1060:重复列名使用视图 - >创建视图
我的代码:
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'不是VIEW。
完全相同的代码就像SQL文件中的魅力一样,当我运行它时,它会创建我需要的表。这两种方法有什么区别?我应该使用哪一个?为什么它不适用于视图 - >创建视图选项?
预先感谢您。
从发布的,你不会得到错误的你一起在这里显示为您所定义你想要的FIRST_NAME列从客户表中定义它。也许在你的实际连接中,你没有指定表格。 – Niagaradad
尝试选择payment.payment_id,customer.first_name作为customer_firstname,customer.last_name作为customer_last_name ...等等...换句话说,将别名添加到相同的列名... – barudo
@Niagaradad,我确实指定了表在实际加入 –