【发布时间】:2018-11-24 13:20:52
【问题描述】:
假设我有一个具有以下结构的数据库:
Customers
ID Name
1 Bob
2 Jim
3 Sally
Products
ID Description
10 Pencil
11 Ruler
12 Eraser
Purchases
ID Customer_ID Product_ID
1 1 10
2 1 11
3 2 10
4 3 12
是否有可能(不为每个客户、每个产品做一个查询)编写一个查询以获得如下格式:
Customer Pencil Ruler Eraser
1 1 1 0
2 1 0 0
3 0 0 1
这是我得到的,但我想避免这种结构,因为它会变得冗长并且产品数量会发生变化。当客户确实购买了产品 10 时,我也会得到重复的行:
SELECT DISTINCT CUSTOMER.CUSTOMER_ID, (case when a.CUSTOMER_ID =
CUSTOMER.CUSTOMER_ID THEN 1 ELSE 0 END) as product10
from
(SELECT PURCHASES.CUSTOMER_ID from PURCHASES
WHERE PURCHASES.PRODUCT_ID = 10) a, CUSTOMER
CUSTOMER_ID product10
1 1
1 0
2 1
2 0
3 0
谢谢!
【问题讨论】: