Листинг 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 '%Федорова%';

Рисунок 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;

Рисунок 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;

Рисунок 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;

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