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 шт):

Автор решения: Alpensin

Не привели название таблицы с книгами. Подставьте сами. Для решения я дважды заджоинил таблицу контактов. Один раз по 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 -- Не написали название таблицы с книгами
→ Ссылка