mysql - 创建具有相同列的两个表的 View

标签 mysql

我正在尝试创建具有以下结果的 View 。我可以很好地创建第一部分,但第二部分是我遇到麻烦的地方。当我进行连接时,我收到错误代码:1052。字段列表中的列“customer_id”不明确。现在我知道在两个表中我有重复的列。

我的问题是如何编写 View 来忽略重复列之一

创建一个名为 customer_addresses 的 View ,显示每个客户的送货地址和帐单地址。此 View 应从“客户”表返回这些列:

customer_id
email_address
last_name
first_name.

此 View 应返回地址表中的这些列:

bill_line1
bill_line2
bill_city
bill_state
bill_zip
ship_line1
ship_line2
ship_city
ship_state
ship_zip

此 View 中的行应先按姓氏列排序,然后按名字列排序。

这是我的代码。

 CREATE OR REPLACE VIEW customer_addresses
 AS
 SELECT customer_id, email_address, last_name, first_name, addresses.line1
 FROM  customers JOIN addresses
 ORDER BY last_name

最佳答案

我会像这样识别所有列:

CREATE OR REPLACE VIEW customer_addresses
 AS
 SELECT 
    customers.customer_id, 
    customers.email_address, 
    customers.last_name, 
    customers.first_name, 
    addresses.line1
 FROM  customers JOIN addresses
 ORDER BY customers.last_name

因为我相信您的 customers 表中有一个 customer_idaddresses 表中有一个。对吗?

如果您不指定表名,并向与 View 中列名相同的表之一添加一列,则会再次出现问题。

关于mysql - 创建具有相同列的两个表的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19397652/

相关文章:

MySQL:从三个表中选择?

mysql - 与计算值左连接

php - 使用 php 将字符串日期时间转换为时间戳

php - HTML/PHP/JQUERY - "alert"更改时多个 <select> 的名称

mysql - SQL 组合 or,and 查询

mysql - Drush Drupal 临时文件夹

mysql - 将数据从一个表复制到另一个表

mysql - 如何查询多对多?

Java 作为与 MySQL 交互的 cron 脚本与使用 PHP

mysql - 制定查询来检测不一致的数据