0% found this document useful (0 votes)
29 views1 page

Joining Data in SQL

This document is a cheat sheet for SQL joins and set theory operators, detailing various types of joins such as RIGHT JOIN, FULL JOIN, INNER JOIN, and UNION ALL. It explains how these joins function, their use cases, and provides sample SQL queries to illustrate their application. Additionally, it covers database relationships and the definitions of primary and foreign keys.

Uploaded by

Muhammad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views1 page

Joining Data in SQL

This document is a cheat sheet for SQL joins and set theory operators, detailing various types of joins such as RIGHT JOIN, FULL JOIN, INNER JOIN, and UNION ALL. It explains how these joins function, their use cases, and provides sample SQL queries to illustrate their application. Additionally, it covers database relationships and the definitions of primary and foreign keys.

Uploaded by

Muhammad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Joining Data in SQL RIGHT JOIN UNION ALL

_ _ GHT JOIN
Cheat Sheet
A right join keeps all of the original left table right table result after RI
The UNION
operator
ALLUNION
works just like , but it SELECT artist_id

records in the right table and returns id _


left val id _
left val id _
left val _
left val
returns duplicate values. The same restrictions of UNION FROM artist

missing values for any columns from


1 L1 1 R1 1 L1 R1
hold true for UNION ALL UNION ALL

the left table where the joining field


Learn SQL online at www.DataCamp.com did not find a match. Right joins are
2 L2 4 R2 4 L2 R2

Result after

SELECT artist_id

FROM album;
3 L3 5 R3 5 null R3
far less common than left joins,
UNION ALL
because right joins can always be re- 4 L4 6 R4 6 null R4
id val
written as left joins. Result after UNION ALL:
left right
1 A

> Definitions used throughout this cheat sheet Result after RI GHT JOIN: id val id val
1 A
artist_id

RIGHT JOIN on one field artist_id name album_id title name


1 A 1 A
1 B
1

2
SELECT*

1 B 4 A
1 AC/DC 1 For those who rock 1 2 A
Primary key:
Foreign key:
3
2 A 5 A
FROM artist as art
1 Aerosmith 2 Dream on 2 3 A
A primary key is a field in a table that uniquely identifies A foreign key is a field in a table which references the 6

each record in the table. In relational databases, primary primary key of another table. In a relational database,
RIGHT JOINASalbum al b
2 Aerosmith 3 Restless and wild 2 3 A 6 A
4 A

ON art.artist_id = alb.album_id; 2 AC/DC 4 Let there be rock 1 4 A


keys can be used as fields to join tables on. one way to join two tables is by connecting the foreign 4 A

key from one table to the primary key of another. 3 null 5 Rumours 6
5 A

FULL JOIN
6 A
One-to-one relationship:
One-to-many relationship:

Database relationships describe the relationships In a one-to-many relationship, a record in one table can

JOIN INTERSECT
between records in different tables. When a one-to-one be related to one or more records in a second table. result after FULL
A full join combines a left join and
relationship exists between two tables, a given record in However, a given record in the second table will only be right join. A full join will return all
_
left table _
right table
id _
left val _
left val

one table is uniquely related to exactly one record in the related to one record in the first table.
id _
left val id _
left val
records from a table, irrespective of 1 L1 R1
other table. 1 L1 1 R1 The INTERSECT
operator returns only identical rows from two tables. SELECT artist_id

whether there is a match on the 2 L2 null


2 L2 4 R2 FROM artist

joining field in the other table,


Many-to-many relationship:
3 L3 null
_
left table _
right table
INTERSEC T

returning null values accordingly. 3 L3 5 R3


Result after

In a many-to-many relationship, records in a given table ‘A’ can be related to one or more records in another table ‘B’, 4 L4 R2
id val id val SELECT artist_id

4 L4 6 R4 INTERSECT
and records in table B can also be related to many records in table A. 5 null R3
FROM album;
6 null R4 1 N1 1 N1 id val

Result after INT RS E ECT:


Sample Data
1 N1 4 R2 1 N1
Result after FULL JOIN:
> FULL JOIN on one field artist_id name album_id title name 3 L3 5 R3
artist_id

1
AC/DC For those who rock
SELECT *
1 1 1
4 L4 6 R4 2
Artist Table Album Table 1 AC/DC 4 Let there be rock 1
FROM artist as art

artist_id name album_id title artist_id


FULL OUTER JOINASalbum al b
2 Aerosmith 2 Balls to the wall 2

1 AC/DC 1 For those who rock 1


ON art.artist_id = alb.album_id;
2

3
Aerosmith

Alanis Morissette
3

null
Restless and wild

null
2

null
EXCEPT
2 Aerosmith 2 Dream on 2
null null 5 Rumours 6
3 Alanis Morissette 3 Restless and wild 2
The EoperatorX P
CE T returns only those rows from SELECT artist_id

4 Let there be rock 1

CROSS JOIN
the left table that are not present in the right table. FROM artist

5 Rumours 6
X PT

E CE

SELECT artist_id

JOIN creates all possible combinations of two _ _


INNER JOIN name, e
left table right table
CROSS SELECT titl FROM album;
Result after

tables. CROSS JOINON


does not require a field to join . FROM artist
id val id val X P
E CE T

An inner join between two tables will _


left table _
right table CROSS JOIN album; Result after EXCEPT:
1 N1 1 N1 id val
return only records where a joining id left val_ id _
left val artist_id

field, such as a key, finds a match in result after INNER JOIN result after
Result after CROSS JOIN:
1 L1 1 R1
CROSS JOIN 1 N1 4 R2 3 L3 1
both tables.
id _
left val _
left val name title 2
id1 id2 3 L3 5 R3 4 L4
2 L2 4 R2 AC/DC For those who rock 3
1 L1 R1 table 1 table 2
1 A AC/DC Dream on
3 L3 5 R3 4 L4 6 R4
4 L4 R2 id1 id AC/DC Restless and wild
4 L4 6 R4 1 B
2 AC/DC Let there be rock
1 A

INN R E JOIN join ON one field 2 B


1 C AC/DC Rumours
SEMI JOIN
Aerosmith For those who rock
2 A
SELECT *
C

3 Aerosmith Dream on
A semi join chooses records in the first table where a SELECT *

FROMAS
artist art Result after INN R E JOIN:
2 B
Aerosmith Restless and wild
m

INNER JOIN albumal


AS b
condition is met in the second table. A semi join makes FROM albu
C
WH WHERE d N

2 Aerosmith Let there be rock


album_id
art.artist_id = alb.artist_id;
name artist_id use of a clause
ERE to use the second table as a filter artist_i
I
ON
1 AC/DC 1 3 A
Aerosmith

Morissette
Rumours

For those who rock


for the first. (SELECT artist_id

INN R E JOIN with USING 1 AC/DC 4


3 B
Alanis

Alanis Morissette Dream on


FROM artist ; )
Result after

2 Aerosmith 2
SELECT Alanis Morissette Restless and wild _
left table _
right table SEMI JOIN
C
Semi join:
2 Aerosmith 3 3
FROMAS
artist art
Alanis Morissette Let there be rock
Result after
id col1 col2 id col1
INNER JOINASalbum al b
Alanis Morissette Rumours album_id title artist_id

USING (artist_id); 1 A B 2 B 1 For those who rock 1

Set Theory Operators in SQL


2 Dream on 2
C C
SELF JOIN
2 B 3
3 Restless and wild 2

3 C
Self-joins are used to compare values in a table to other values of the same table by joining different parts
4 D
of a table together.

T
Self join: N
INTERSECT EXCEPT
JOIN
SELEC UNIO
Result after
art1.artist_id,
UNION ALL ANTI
1 2
art1.title AS
artist_id art _title art _title
art 1_title,

art2.title AS
For those who rock For those who rock
art 2_title
1
The anti join chooses records in the first table where a SELECT *

FROM artist as art1

2 Dream on Dream on UNION condition is NOT


met in the second table. It makes use of FROM albu m

INNER JOIN artist as art2


WH WHERE d
2 Restless and wild Dream on
a clause
ERE to use exclude values from the second artist_i
NOT I N

ON art1.artist_id = art2.album_id;
For those who rock
1 Let there be rock
The UNION
operator is used to vertically combine the results SELECT artist_id
table. (SELECT artist_id

of two SELECTUNION
statements. For to work without errors, FROM artist
FROM artist ; )
LEFT JOIN N

all SELECT
statements must have the same number of UNIO Left table after

columns and corresponding columns must have the same


_
left table _
right table ANTI JOIN
SELECT artist_id

Result after Anti oin: j


A left join keeps all of the original _
left table _
right table result after LEFT JOIN data type. UNION
does not return duplicates. FROM album; id col1 col2 id col1
album_id title artist_id
records in the left table and returns id _
left val id _
left val id _
left val left_val
Result after UNION: 1 A B 1 A 5 Rumours 6
missing values for any columns from
1 L1 1 R1 1 L1 R1 Result after UNION
the right table where the joining field artist_id 2 B C 4 D
did not find a match.
2 L2 4 R2 2 L2 null id val
1
3 L3 5 R3 3 L3 null
left right
1 A 2
3 C
id val id val
4 L4 6 R4 4 L4 R2 3
1 B 4 D
1 A 1 A 1
2 A
Result after L FT E JOIN: 1 B 4 A
2

E
3 A
L FT JOIN on one field artist_id name album_id title name
2
2 A 5 A

SELECT *
1 AC/DC 1 For those who rock 1
3 A 6 A
4 A 1

5 A 6
FROMAS
artist art
1 AC/DC 4 Let there be rock 1

JOINASalbum al b

Learn Data Skills Online at www.DataCamp.com


4 A
LEFT 2 Aerosmith 2 Dream on 2 6 A

ON art.artist_id = alb.album_id; 2 Aerosmith 3 Restless and wild 2

3 Alanis Morissette null null null

You might also like