SQL-complete-tutorial
55 строк · 1.0 Кб
1-- Find clients without invoices
2SELECT *
3FROM clients
4WHERE client_id NOT IN(
5SELECT DISTINCT client_id
6FROM invoices
7);
8
9-- Rewrite the same code by using JOIN
10SELECT *
11FROM clients
12LEFT JOIN invoices USING (client_id)
13WHERE invoice_id IS NULL;
14
15-- Find customers who have ordered lettuce (id=3)
16-- Select customer_id, first_name, last_name
17USE sql_store;
18
19-- Solution 1 by using subquery
20SELECT
21customer_id,
22first_name,
23last_name
24FROM customers
25WHERE customer_id IN (
26SELECT DISTINCT customer_id
27FROM orders
28WHERE order_id IN (
29SELECT order_id
30FROM order_items
31WHERE product_id = 3)
32);
33
34-- Solution 2 by using subquery
35SELECT
36customer_id,
37first_name,
38last_name
39FROM customers
40WHERE customer_id IN (
41SELECT o.customer_id
42FROM order_items oi
43JOIN orders o USING (order_id)
44WHERE product_id = 3
45);
46
47-- Solution by using join
48SELECT DISTINCT
49customer_id,
50first_name,
51last_name
52FROM customers c
53JOIN orders o USING (customer_id)
54JOIN order_items oi USING (order_id)
55WHERE oi.product_id = 3;
56
57