sql join explained visually
TRANSCRIPT
![Page 1: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/1.jpg)
V I S U A L I Z I N GS Q L J O I N
V I N C E N T C H A N - D E C 2 0 1 6
![Page 2: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/2.jpg)
I N N E R J O I N
T A B L E A T A B L E B
STAFF_ID NAME
1 JANE
2 MARY
3 JOHN
4 EMMA
s t a f f
STAFF_ID POSITION
7 CLERK
2 MANAGER
3 SUPERVISOR
5 EXECUTIVE
1 EXECUTIVE
P O S I T I O N
SELECT STAFF.STAFF_ID, STAFF.NAME, POSITION.POSITIONFROM STAFFINNER JOIN POSITIONON STAFF.STAFF_ID = POSITION.STAFF_ID
R E S U L T
S Q L C O M M A N D
STAFF_ID NAME POSITION
1 JANE EXECUTIVE
2 MARY MANAGER
3 JOHN SUPERVISOR
Returns all rows when there is at least one match in BOTH tables
![Page 3: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/3.jpg)
L E F T J O I N
T A B L E A T A B L E B
STAFF_ID NAME
1 JANE
2 MARY
3 JOHN
4 EMMA
s t a f f
STAFF_ID POSITION
7 CLERK
2 MANAGER
3 SUPERVISOR
5 EXECUTIVE
1 EXECUTIVE
P O S I T I O N
SELECT STAFF.STAFF_ID, STAFF.NAME, POSITION.POSITIONFROM STAFFLEFT JOIN POSITIONON STAFF.STAFF_ID = POSITION.STAFF_ID
R E S U L T
S Q L C O M M A N D
STAFF_ID NAME POSITION
1 JANE EXECUTIVE
2 MARY MANAGER
3 JOHN SUPERVISOR
4 EMMA NULL
Return all rows from the left table, and the matched rows from the right table
![Page 4: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/4.jpg)
R I G H T J O I N
T A B L E A T A B L E B
STAFF_ID NAME
1 JANE
2 MARY
3 JOHN
4 EMMA
s t a f f
STAFF_ID POSITION
7 CLERK
2 MANAGER
3 SUPERVISOR
5 EXECUTIVE
1 EXECUTIVE
P O S I T I O N
SELECT STAFF.STAFF_ID, STAFF.NAME, POSITION.POSITIONFROM STAFFRIGHT JOIN POSITIONON STAFF.STAFF_ID = POSITION.STAFF_ID
R E S U L T
S Q L C O M M A N D
STAFF_ID NAME POSITION
7 NULL CLERK
2 MARY MANAGER
3 JOHN SUPERVISOR
5 NULL EXECUTIVE
1 JANE EXECUTIVE
Return all rows from the right table, and the matched rows from the left table
![Page 5: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/5.jpg)
F U L L O U T E R J O I N
T A B L E A T A B L E B
STAFF_ID NAME
1 JANE
2 MARY
3 JOHN
4 EMMA
s t a f f
STAFF_ID POSITION
7 CLERK
2 MANAGER
3 SUPERVISOR
5 EXECUTIVE
1 EXECUTIVE
P O S I T I O N
SELECT STAFF.STAFF_ID, STAFF.NAME, POSITION.POSITIONFROM STAFFFULL OUTER JOIN POSITIONON STAFF.STAFF_ID = POSITION.STAFF_ID
R E S U L T
S Q L C O M M A N D
STAFF_ID NAME POSITION
1 JANE EXECUTIVE
2 MARY MANAGER
3 JOHN SUPERVISOR
4 EMMA NULL
7 NULL CLERK
5 NULL EXECUTIVE
Return all of the records from both tables
![Page 6: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/6.jpg)
L E F T E X C L U D I N G J O I N
T A B L E A T A B L E B
STAFF_ID NAME
1 JANE
2 MARY
3 JOHN
4 EMMA
s t a f f
STAFF_ID POSITION
7 CLERK
2 MANAGER
3 SUPERVISOR
5 EXECUTIVE
1 EXECUTIVE
P O S I T I O N
SELECT STAFF.STAFF_ID, STAFF.NAME, POSITION.POSITIONFROM STAFFLEFT JOIN POSITIONON STAFF.STAFF_ID = POSITION.STAFF_IDWHERE POSITION.POSITION IS NULL
R E S U L T
S Q L C O M M A N D
STAFF_ID NAME POSITION
1 JANE EXECUTIVE
4 EMMA NULL
Return all of the records in the left table that do not match any records in the right
table
![Page 7: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/7.jpg)
R I G H T E X C L U D I N G J O I N
T A B L E A T A B L E B
STAFF_ID NAME
1 JANE
2 MARY
3 JOHN
4 EMMA
s t a f f
STAFF_ID POSITION
7 CLERK
2 MANAGER
3 SUPERVISOR
5 EXECUTIVE
1 EXECUTIVE
P O S I T I O N
SELECT STAFF.STAFF_ID, STAFF.NAME, POSITION.POSITIONFROM STAFFRIGHT JOIN POSITIONON STAFF.STAFF_ID = POSITION.STAFF_IDWHERE STAFF.NAME IS NULL
R E S U L T
S Q L C O M M A N D
STAFF_ID NAME POSITION
7 NULL CLERK
5 NULL EXECUTIVE
Return all of the records in the right table that do not match any records in the left
table
![Page 8: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/8.jpg)
O U T E R E X C L U D I N G J O I N
T A B L E A T A B L E B
STAFF_ID NAME
1 JANE
2 MARY
3 JOHN
4 EMMA
s t a f f
STAFF_ID POSITION
7 CLERK
2 MANAGER
3 SUPERVISOR
5 EXECUTIVE
1 EXECUTIVE
P O S I T I O N
SELECT STAFF.STAFF_ID, STAFF.NAME, POSITION.POSITIONFROM STAFFFULL OUTER JOIN POSITIONON STAFF.STAFF_ID = POSITION.STAFF_ID
R E S U L T
S Q L C O M M A N D
STAFF_ID NAME POSITION
7 NULL CLERK
5 NULL EXECUTIVE
Return all of the records in the left table and all of the records in the right table that
do not match
![Page 9: SQL JOIN Explained Visually](https://reader031.vdocument.in/reader031/viewer/2022030306/586fc4081a28aba24c8b559d/html5/thumbnails/9.jpg)
A L T E R N A T I V E L Y
A
INNERJOIN =
B 1 B 1
C 2 C 2
3
A
RIGHTJOIN =
B 1 B 1
C 2 C 2
3 3
A
LEFTJOIN =
A
B 1 B 1
C 2 C 2
3
A
FULLJOIN =
A
B 1 B 1
C 2 C 2
3 3