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

SQL   1 апреля 2012  Автор статьи:  

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

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

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

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

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

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

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

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

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

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

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

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

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

    Научиться программировать

    • на Delphi

    • на Java

    • на C++