SQL Объединение 3-х таблиц в запросе
У меня есть 3 таблицы
Контакты: id, name, type (клиент, автор)
История книги: id, UsrClientId, UsrAuthorId, UsrCurrentBookId, UsrGivingDate, UsrPlanedReturnDate
Книги: id, name
Клиент может брать книги.
У книги есть автор, который так же как и клиент находится в таблице контактов.
Как мне получить таблицу такого формата: имя клиента, название книги, автор, дата выдачи, дата возврата?
Пробовал выполнять такой запрос:
Select Contact.Name,
UsrHistoryDetail.UsrAuthorId,
UsrHistoryDetail.UsrCurrentBookId,
UsrHistoryDetail.UsrGivingDate,
UsrHistoryDetail.UsrPlanedReturnDate
From
Contact join UsrHistoryDetail On Contact.Id = UsrHistoryDetail.UsrClientId
Проблема в том, что я не знаю, как через UsrAuthorId и UsrCurrentBookId получить имя автора и название книги в эту таблицу.
Ответы (1 шт):
Не привели название таблицы с книгами. Подставьте сами. Для решения я дважды заджоинил таблицу контактов. Один раз по id клиента, другой по id автора. Проверьте, всё ли ок.
select
c_client.Name,
b.name,
c_author.Name,
h.UsrGivingDate,
h.UsrPlanedReturnDate
from UsrHistoryDetail h
join Contact c_client on c_client.Id = h.UsrClientId
join Contact c_author on c_author.Id = h.UsrAuthorId
join Books b on b.id = h.UsrCurrentBookId -- Не написали название таблицы с книгами