Запрос с соединением таблиц - MySQL
Формулировка задачи:
Вроде плёвый запрос, но я чёт сообразить не могу. В общем, есть 3 таблицы:
Нужно вытянуть все поля из Problem, но фишка в том, то поле Problem.Admin может быть null.
Решение задачи: «Запрос с соединением таблиц»
textual
Листинг программы
SELECT Problem.ID, DATE, Workers.FIO_, Type_Uslugi, Usluga, Priority, CASE WHEN (Problem.Admin IS NULL) THEN Problem.Admin ELSE Admins.FIO END AS Админы FROM Problem, Workers, Admins WHERE Problem.Worker = Workers.ID
Объяснение кода листинга программы
В данном коде выполняется запрос к базам данных с использованием языка SQL.
- SELECT - указывает, какие поля следует выбрать из таблицы.
- Problem.ID, DATE, Workers.FIO_, Type_Uslugi, Usluga, Priority - перечисляют поля, которые необходимо выбрать.
- CASE WHEN (Problem.Admin IS NULL) THEN Problem.Admin ELSE Admins.FIO END — используется для создания нового поля
Администраторы
, которое будет содержать либо имя администратора из поля Problem.Admin, либо из поля Admins.FIO, если Problem.Admin равно NULL. - FROM Problem, Workers, Admins — указывает, из каких таблиц следует выбирать данные.
- WHERE Problem.Worker = Workers.ID — устанавливает условие для соединения таблиц, что поле Worker из таблицы Problem должно быть равно полю ID из таблицы Workers.
Этот запрос позволяет выбрать данные из таблиц Problem, Workers и Admins, объединив их по полю Worker и создав новое поле
Администраторы
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д