-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLeetCode1398.sql
More file actions
51 lines (50 loc) · 1.16 KB
/
LeetCode1398.sql
File metadata and controls
51 lines (50 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
-- 使用IN与NOT IN判断
select customer_id, customer_name
from Customers
where
customer_id not in(
select customer_id
from Orders
where
product_name = 'C'
)
and customer_id in (
select o1.customer_id
from Orders o1
inner join Orders o2 on o1.customer_id = o2.customer_id
and o1.product_name = 'A'
and o2.product_name = 'B'
);
-- 简化判断条件
SELECT customer_id, customer_name
FROM Customers
WHERE
customer_id NOT IN(
SELECT customer_id
FROM Orders
WHERE
product_name = 'C'
)
AND Customer_id IN (
SELECT customer_id
FROM Orders
WHERE
product_name = 'A'
)
AND Customer_id IN (
SELECT customer_id
FROM Orders
WHERE
product_name = 'B'
)
ORDER BY customer_id
-- 通过GROUP BY统计次数
SELECT c.customer_id, c.customer_name
FROM Orders o
LEFT JOIN Customers c ON o.customer_id = c.customer_id
GROUP BY
c.customer_id
HAVING
SUM(product_name = 'A') * SUM(product_name = 'B') > 0
AND SUM(product_name = 'C') = 0
ORDER BY c.customer_id