Set theory for SQL
Joins
JOINING DATA IN SQL
Maham Faisal Khan
Senior Content Developer, DataCamp
Venn diagrams and set theory
JOINING DATA IN SQL
Venn diagrams and set theory
JOINING DATA IN SQL
UNION diagram
UNION takes two tables as input, and returns all records from both tables
JOINING DATA IN SQL
UNION ALL diagram
UNION ALL takes two tables and returns all records from both tables, including duplicates
JOINING DATA IN SQL
UNION and UNION ALL syntax
UNION syntax UNION ALL syntax
SELECT * SELECT *
FROM left_table FROM
left_table
UNION UNION ALL
SELECT * SELECT *
FROM right_table; FROM
right_table;
JOINING DATA IN SQL
UNION and UNION ALL syntax
JOINING DATA IN SQL
UNION and UNION ALL syntax
JOINING DATA IN SQL
To the monarchs table
SELECT *
FROM monarchs;
| country | continent | monarch |
|---------------- |-------------|------------------------- |
| Brunei | Asia | Hassanal Bolkiah |
| Oman | Asia | Haitham bin Tarik |
| Norway | Europe | Harald V |
| United Kingdom | Europe | Charles III |
JOINING DATA IN SQL
Prime ministers, meet the monarchs
SELECT monarch AS leader, country
FROM monarchs
UNION
SELECT prime_minister, country
FROM prime_ministers
ORDER BY country, leader
LIMIT 10;
JOINING DATA IN SQL
After the UNION
|------------------------- |---------------- |
| leader | country |
|------------------------- |---------------- |
| Anthony Albanese | Australia |
| Hassanal Bolkiah | Brunei |
| Mostafa Madbouly | Egypt |
| Narendra Modi | India |
| Christopher Luxon | New Zealand |
| Harald V | Norway |
| Jonas Gahr Støre | Norway |
| Haitham bin Tarik | Oman |
| Shehbaz Sharif | Pakistan |
| Luís Montenegro | Portugal |
|------------------------- |---------------- |
JOINING DATA IN SQL
UNION ALL with the leaders
SELECT monarch AS leader, country
FROM monarchs
UNION ALL
SELECT prime_minister, country
FROM prime_ministers
ORDER BY leader, country
LIMIT 10;
JOINING DATA IN SQL
UNION ALL result
| leader | country |
|------------------------- |---------------- |
| Anthony Albanese | Australia |
| Hassanal Bolkiah | Brunei |
| Hassanal Bolkiah | Brunei |
| Mostafa Madbouly | Egypt |
| Narendra Modi | India |
| Christopher Luxon | New Zealand |
| Harald V | Norway |
| Jonas Gahr Støre | Norway |
| Haitham bin Tarik | Oman |
| Haitham bin Tarik | Oman |
JOINING DATA IN SQL
Let's practice!
JOINING DATA IN SQL
At the INTERSECT
JOINING DATA IN SQL
Maham Faisal Khan
Senior Content Developer, DataCamp
INTERSECT Venn diagram
JOINING DATA IN SQL
INTERSECT diagram
JOINING DATA IN SQL
INTERSECT syntax
SELECT id, val
FROM left_table
INTERSECT
SELECT id, val
FROM right_table;
JOINING DATA IN SQL
INTERSECT vs. INNER JOIN on two columns
INTERSECT syntax INNER JOIN syntax
SELECT * SELECT *
FROM left_table FROM left_table
INTERSECT INNER JOIN right_table
SELECT * ON left.id = right.id
FROM right_table; AND left.val = right.val
JOINING DATA IN SQL
Countries with prime ministers and presidents
SELECT country as intersect_country
FROM prime_ministers
INTERSECT
SELECT country
FROM presidents;
| intersect_country |
|-------------------|
| Egypt |
| Portgual |
| Pakistan |
| India |
JOINING DATA IN SQL
INTERSECT on two fields
SELECT country, prime_minister AS leader
FROM prime_ministers
INTERSECT
SELECT country, president
FROM presidents;
|-----------|---------- |
| country | leader |
|-----------|---------- |
|-----------|---------- |
JOINING DATA IN SQL
Countries with prime ministers and monarchs
SELECT country, prime_minister AS leader
FROM prime_ministers
INTERSECT
SELECT country, monarch
FROM monarchs;
|---------|-------------------- |
| country | leader |
|---------|-------------------- |
| Brunei | Hassanal Bolkiah |
| Oman | Haitham bin Tarik |
|---------|-------------------- |
JOINING DATA IN SQL
Let's practice!
JOINING DATA IN SQL
EXCEPT
JOINING DATA IN SQL
Maham Faisal Khan
Senior Content Developer, DataCamp
EXCEPT Venn diagram
JOINING DATA IN SQL
EXCEPT diagram
JOINING DATA IN SQL
EXCEPT syntax
SELECT monarch, country
FROM monarchs
EXCEPT
SELECT prime_minister, country
FROM prime_ministers;
|------------------|------------------ |
| monarch | country |
|------------------|------------------ |
| Harald V | Norway |
| Charles III | United Kingdom |
| Willem-Alexander | Netherlands |
|------------------|------------------ |
JOINING DATA IN SQL
Let's practice!
JOINING DATA IN SQL