我需要按客户显示销售清单,显示客户ID,客户名称, 客户购买的产品名称和销售日期,并按客户ID排序。
这是客户表结构
CREATE TABLE customer
(cust_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,forename CHAR(10) NOT NULL
,surname CHAR(10) NOT NULL
,phone CHAR(15) NULL
);
这是销售表结构
CREATE TABLE sales
(cust_id CHAR(6) NOT NULL
,prod_id CHAR(8) NOT NULL
,quantity SMALLINT NULL
,date_of_sale NULL
,PRIMARY KEY(cust_id,prod_id)
);
谢谢。
产品表
答案 0 :(得分:0)
这将为您提供客户列表,它使用LEFT JOINS - 这意味着结果将向您显示没有销售的客户以及销售客户 - 这可能是您想要了解的信息。
SELECT
c.cust_id,
c.forename,
c.surname,
p.prod_name,
s.date_of_sale
FROM customers c
LEFT JOIN sales s ON s.cust_id = c.cust_id
LEFT JOIN products p ON p.prod_id = s.prod_id
ORDER BY c.cust_id ASC
如果您只想查看有销售的客户,那么只需将LEFT
更改为INNER
。
SELECT
c.cust_id,
c.forename,
c.surname,
p.prod_name,
s.date_of_sale
FROM customers c
INNER JOIN sales s ON s.cust_id = c.cust_id
INNER JOIN products p ON p.prod_id = s.prod_id
ORDER BY c.cust_id ASC