【发布时间】:2014-10-29 20:56:09
【问题描述】:
考虑模拟表
ORDERS
OrderID CustID date
10 1 2014-01-01
11 3 2014-02-01
12 2 2014-03-01
CUSTOMER
CustID FName LName
1 Jon Doe
2 Jane Doe
3 Mike Brown
LINEITEM
OrderID ProdID
10 1
10 3
11 2
12 1
12 2
PRODUCTS
ProdID Description
1 Apple
2 Orange
3 Grape
我想返回一个如下所示的结果集:
OrderID CustomerLastName Apple Orange Grape
11 Brown No Yes No
12 Doe Yes Yes No
逻辑:选择 orderID、客户姓氏,确定他们是否购买了每种产品(是或否) 对于订单日期早于 2014-01-01 的所有订单。
这是我能做到的程度
select O.OrderID as 'OrderID',
C.LName as 'CustomerLastName',
(some conditional or subquery for figuring out yes or no) as 'Apple',
(some conditional or subquery for figuring out yes or no) as 'Orange',
(some conditional or subquery for figuring out yes or no) as 'Grape'
from ORDERS O join CUSTOMER C using (CustID)
join LINEITEM using (OrderID)
join Products P using (ProdID)
where O.date > 2014-01-01;
对于如何为每个订单只返回一行以及产品的“是/否”逻辑的任何帮助将不胜感激。
谢谢
【问题讨论】:
-
抱歉,这些表格没有保留原始文本框中的格式。试试这个
-
请不要并排放置表格,这会使复制粘贴到 sqlfiddle 变得困难。
标签: mysql subquery conditional