Inner join оставляет только те записи, ключ для которых одновременно присутствуют в обеих таблицах.
Давайте рассмотрим принцип работы INNER JOIN
на примере таблиц учеников и оценок.
Выведем список оценок, предмет и имя ученика:
select
sc.student_id,
st.student,
sc.subject,
sc.score
from
score_table as sc
inner join
student_table as st on st.student_id = sc.student_id
student_id |
subject |
score |
student |
1 |
SQL |
5 |
Александр |
2 |
Математика |
4 |
Влад |
3 |
Физ-ра |
5 |
Сергей |
4 |
Математика |
3 |
Полина |
5 |
SQL |
3 |
Ксения |
В таблице с оценками нет студента с student_id
= 7, а в таблице студентов нет student_id
= 6. Полное пересечение у таблиц происходит только для student_id
от 1 до 5, поэтому и финальная таблица будет содержать данные только для student_id
от 1 до 5.
На практике многие не пишут INNER JOIN
, а заменяют его просто JOIN
.