inner join 按客户显示销售列表
inner join display list of sales by customer
我需要按客户显示销售列表,显示客户 ID、客户姓名、
客户购买的产品名称,销售日期,按客户id排序..
这里是客户table结构
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
);
这是销售 table 结构
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)
);
谢谢。
产品table
这将为您提供客户列表,它使用 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
我需要按客户显示销售列表,显示客户 ID、客户姓名、 客户购买的产品名称,销售日期,按客户id排序..
这里是客户table结构
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
);
这是销售 table 结构
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)
);
谢谢。
产品table
这将为您提供客户列表,它使用 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