Запрос select c отображением внешних ключей в виде данных

прошу помочь с написанием запроса select
У меня есть две таблицы:

  1. Call, с атрибутами:
    id_call (первичный ключ),
    date_of_call,
    time_of_call,
    minute_duration,
    id_number_in - входящий номер (внешний ключ на Number.id_number),
    id_number_out - исходящий номер (внешний ключ на Number.id_number)

  2. Number, с атрибутами:
    id_number (первичный ключ),
    phone_number

Мне необходимо написать запрос который выведет все данные в преглядном для пользователя виде, т.е вместо внешних ключей должны выводиться данные, я написала вот такой запрос (см. ниже), но встряла с тем что не знаю как реализовать, чтобы вместо ключей в колонках "Входящий" и "Исходящий" отображались номера абонентов

select id_call as "Код звонка", 
    date_of_call as "Дата звонка", 
    time_of_call as "Время звонка", 
    minute_duration as "Продолжительность(в минутах)",
    id_number_in  as "Входящий",
    id_number_out as "Исходящий" from call_tb
inner join number_tb on number_tb.id_number = call_tb.id_number_in;

Результат моего запроса (https://drive.google.com/file/d/1bgm8LQWUv4rsD5cqaR_RbC5wJxngtRVc/view?usp=sharing)


Ответы (1 шт):

Автор решения: Богдан Новотарский

Ты можешь использовать два JOIN, чтобы получить номера телефонов вместо внешних ключей. Вот исправленный запрос:

SELECT 
    c.id_call AS "Код звонка", 
    c.date_of_call AS "Дата звонка", 
    c.time_of_call AS "Время звонка", 
    c.minute_duration AS "Продолжительность (в минутах)",
    n_in.phone_number AS "Входящий",
    n_out.phone_number AS "Исходящий"
FROM call_tb c
LEFT JOIN number_tb n_in ON c.id_number_in = n_in.id_number
LEFT JOIN number_tb n_out ON c.id_number_out = n_out.id_number;

c — алиас для таблицы call_tb, чтобы не писать длинные названия.

n_in и n_out — два раза подключаем number_tb, чтобы получить данные для входящего и исходящего номера.

LEFT JOIN — если вдруг в call_tb есть записи без соответствующих номеров в number_tb, они всё равно отобразятся, но с NULL в соответствующих полях.

Теперь в столбцах "Входящий" и "Исходящий" будут отображаться реальные номера телефонов вместо id_number.

→ Ссылка