内部联接显示客户的销售清单

时间:2015-05-31 22:18:33

标签: mysql phpmyadmin

我需要按客户显示销售清单,显示客户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)
);
谢谢。

产品表

enter image description here

1 个答案:

答案 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