Листинг 10.10 - Пациенты, записанные к врачу Федоровой

--Выборка пользователей, который записаны к врачу Федоровой
SELECT U.first_name AS patient_first_name, U.last_name AS patient_last_name, U.patronymic AS patient_patronymic,
       A.doctor AS doctor_name
FROM Users U
INNER JOIN Appointment A ON U.user_id = A.user_id
WHERE A.doctor LIKE '%Федорова%';

Untitled

Рисунок 10.12 - Результат запроса

Листинг 10.11 - Последняя дата на прием

--Показать последнюю дату записи на прием, которая была зарегистрирована для конкретного пациента в базе данных
SELECT U.user_id, U.first_name, U.last_name, max_date.last_appointment_date
FROM Users U
LEFT JOIN (
    SELECT user_id, MAX(date) AS last_appointment_date
    FROM Appointment
    GROUP BY user_id
) max_date ON U.user_id = max_date.user_id;

Untitled

Рисунок 10.13 - Результат запроса

Листинг 10.12 - Пациенты и их записи на прием

--JOIN запрос для получения информации о пользователях и их записях на прием
SELECT Users.first_name, Users.last_name, Appointment.service, Appointment.date
FROM Users
INNER JOIN Appointment ON Users.user_id = Appointment.user_id;

Untitled

Рисунок 10.14 - Результат запроса

Листинг 10.13 - Пациенты и их отзывы

--LEFT JOIN для вывода всех пользователей и их отзывов
SELECT Users.first_name, Users.last_name, Review.text
FROM Users
LEFT JOIN Review ON Users.user_id = Review.user_id;

Untitled

Рисунок 10.15 - Результат запроса