SQL Урок 5. Оператор join

Для того, чтобы явно указать соединение двух таблиц используется операция join:

1
таблица1 [модификатор] JOIN таблица2 ON условие

Т.е для того чтобы связать таблицу Student и StudentGroup достаточно использовать следующий запрос:

1
SELECT * FROM Student JOIN StudentGroup ON Student.GroupID=StudentGroup.ID

Рассмотрим какие бывают модификаторы:

  • «По умолчанию» — в результирующий набор попадут только те строки для которых значение условия равно истине
  • «LEFT» — в результирующий набор попадут те записи, которые содержатся в левой таблице и к ним присоединятся записи из второй таблицы, которые соответствуют условию, если же таких записей не найдется, то к присоединяться значения NULL
  • «RIGHT» — тоже самое что и «LEFT», только нужно поменять местами первую и вторую таблицу.
  • «FULL» — является комбинацией «LEFT» и «RIGHT».

Для лучшего понимания необходимо потестировать базу данных самому. Приведу некоторые примеры запросов:

1
SELECT * FROM Student LEFT JOIN StudentGroup ON Student.GroupID=StudentGroup.ID

Эквивалентно

1
SELECT * FROM StudentGroup RIGHT JOIN Student  ON Student.GroupID=StudentGroup.ID

Два приведенных ниже запроса эквивалентны, если всегда существует для каждой группы — студент и для каждого номера группы в таблице студентов существует группа, т.е не будет значений равных NULL

1
2
SELECT * FROM StudentGroup JOIN Student  ON Student.GroupID=StudentGroup.ID
SELECT * FROM StudentGroup FULL JOIN Student  ON Student.GroupID=StudentGroup.ID

Также при полном соединение таблиц (full join) следующих два запроса тоже эквивалентны:

1
2
SELECT * FROM Student FULL JOIN StudentGroup  ON Student.GroupID=StudentGroup.ID
SELECT * FROM StudentGroup FULL JOIN Student  ON Student.GroupID=StudentGroup.ID

Категория: MySQL | Добавил: ghost_mod (29.09.2016)
Просмотров: 313 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: