При работе с таблицами в SQL могут возникнуть ситуации, когда вам потребуется запросить три и более таблиц. Вы можете объединить три таблицы, сначала используя оператор соединения для соединения двух таблиц, чтобы создать временную объединенную таблицу. Затем используйте второй оператор соединения, чтобы присоединиться к третьей таблице.
Шаги
Шаг 1. Введите SELECT, а затем имена столбцов, которые вы хотите запросить
Введите имя столбца из каждого из трех, которые вы хотите запросить. Разделите имена столбцов запятыми. В этом примере мы будем запрашивать из трех таблиц с именами «Студенты», «Школы», «Подробности».
Например: SELECT student_id, student_name, school_id, school, grade
Шаг 2. Введите FROM, а затем имя первой таблицы
Это может быть отдельной строкой или сразу после первого оператора. В нашем примере мы бы набрали ОТ Студентов.
Шаг 3. Введите оператор соединения, за которым следует имя второй таблицы
Существует четыре типа операторов соединения, которые можно использовать для объединения двух таблиц. Вот они:
- Введите JOIN, чтобы выполнить Внутреннее соединение. Это возвращает записи, которые имеют совпадающие значения в обеих таблицах. Например, ОТ студентов ПРИСОЕДИНЯЙТЕСЬ Подробнее.
- Введите LEFT JOIN, чтобы выполнить Внешнее левое соединение. Это возвращает все записи из левой таблицы и соответствующие значения из правой таблицы. Например FROM Student LEFT JOIN Details.
- Введите RIGHT JOIN, чтобы выполнить Внешнее правое соединение. Это возвращает все записи из правой таблицы и соответствующие значения из левой таблицы. Например ОТ СТУДЕНТОВ ПРАВО ПРИСОЕДИНЯЙТЕСЬ Подробности.
- Введите FULL JOIN, чтобы выполнить Полное внешнее соединение. Это вернет все записи из обеих таблиц. Например, FROM Student FULL JOIN Details.
Шаг 4. Введите оператор «ON» для объединяемых таблиц и столбцов
Синтаксис этого оператора: «ON table_1.primary_key = table_2.foreign_key». «Таблица_1» - это имя первой таблицы, к которой вы присоединяетесь, а «primary_key» - имя основного столбца в первой таблице. «Таблица_2» - это имя второй таблицы, а «foreign_key» - имя столбца из второй таблицы, которое соответствует первичному столбцу из первой таблицы.
- В нашем примере «Студенты» - это первая таблица, а «student_id» - это первичный ключ из таблицы «Студенты», которая также находится в таблице «Подробности». Таким образом, мы должны ввести ON Students.student_id = Details.student_id. Это объединяет таблицу "Студенты" с таблицей "Подробности", используя "student_id" в качестве первичного ключа.
- В качестве альтернативы, если столбец student_name находится в таблице «Подробности», вы можете отобразить столбец student_name вместо поля student_id, набрав ON Students.student_id = Details.student_name.
Шаг 5. Введите оператор соединения и имя третьей таблицы
Это может быть в отдельной строке или сразу после оператора «ON», соединяющего первые две таблицы. Вы можете использовать любой из четырех операторов соединения.
В нашем примере мы должны ввести JOIN Schools
Шаг 6. Введите оператор «ON», который указывает, какие таблицы и столбцы будут объединены
Синтаксис третьего соединения: «ON table_3.primary_key = table_1.foreign_key». "Таблица 1". «Таблица_3 - это имя третьей таблицы. Это добавляет третью таблицу к окончательному объединению с использованием имени основного столбца из третьей таблицы и внешнего ключа из первой таблицы. В нашем примере это мы бы набрали ON Schools.student_id = Students.student_id. Весь оператор соединения должен выглядеть примерно так:
ВЫБЕРИТЕ student_id, student_name, school_id, school, grade FROM Student FULL JOIN Details ON Students.student_id = Details.student_id ПРИСОЕДИНЯЙТЕСЬ к школам в Schools.student_id = Students.student_id