-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoracle_joins.sql
71 lines (53 loc) · 1.8 KB
/
oracle_joins.sql
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
CREATE TABLE palette_a (
id INT PRIMARY KEY,
color VARCHAR2 (100) NOT NULL
);
CREATE TABLE palette_b (
id INT PRIMARY KEY,
color VARCHAR2 (100) NOT NULL
);
INSERT INTO palette_a (id, color)
VALUES (1, 'Red');
INSERT INTO palette_a (id, color)
VALUES (2, 'Green');
INSERT INTO palette_a (id, color)
VALUES (3, 'Blue');
INSERT INTO palette_a (id, color)
VALUES (4, 'Purple');
-- insert data for the palette_b
INSERT INTO palette_b (id, color)
VALUES (1, 'Green');
INSERT INTO palette_b (id, color)
VALUES (2, 'Red');
INSERT INTO palette_b (id, color)
VALUES (3, 'Cyan');
INSERT INTO palette_b (id, color)
VALUES (4, 'Brown');
-- INNER JOIN
SELECT a.id id_a, a.color color_a, b.id id_b, b.color color_b
FROM palette_a a
INNER JOIN palette_b b ON a.color = b.color;
-- LEFT JOIN
SELECT a.id id_a, a.color color_a, b.id id_b, b.color color_b
FROM palette_a a
LEFT JOIN palette_b b ON a.color = b.color;
-- LEFT JOIN: with exclusion of rows from right
SELECT a.id id_a, a.color color_a, b.id id_b, b.color color_b
FROM palette_a a
LEFT JOIN palette_b b ON a.color = b.color WHERE b.id IS NULL;
-- RIGHT JOIN
SELECT a.id id_a, a.color color_a, b.id id_b, b.color color_b
FROM palette_a a
RIGHT JOIN palette_b b ON a.color = b.color;
-- RIGHT JOIN: only rows from right table
SELECT a.id id_a, a.color color_a, b.id id_b, b.color color_b
FROM palette_a a
RIGHT JOIN palette_b b ON a.color = b.color WHERE a.id IS NULL;
-- FULL JOIN
SELECT a.id id_a, a.color color_a, b.id id_b, b.color color_b
FROM palette_a a
FULL OUTER JOIN palette_b b ON a.color = b.color;
-- FULL JOIN: unique rows
SELECT a.id id_a, a.color color_a, b.id id_b, b.color color_b
FROM palette_a a
FULL JOIN palette_b b ON a.color = b.color WHERE a.id IS NULL OR b.id IS NULL;