Запрос c замещением идентификаторов на значения из таблиц

В запросе из БД:

select * from sms where card_id = 10644617 

я получаю строку где имеются AuthorId и STATUS_ID.

Эти две колонки возвращают мне AuthorId и STATUS_ID в численном виде.

Мне нужно, чтобы в каждой строке подставились данные из таблицы Users.Name по ID (AuthorId - выше), и для статуса соответсвенно таблица DEFSMSSTATUS.Name по ID (STATUS_ID- выше).

Как я понял тут JOIN не поможет, я просто сделаю разовый запрос и выведу результат.

А как сделать подмену ID на их значения из их таблиц?


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

Автор решения: 0xdb

Как я понял тут join не поможет

Нет, здесь он как раз кстати:

select sms.card_id, u.name, s.name
from sms 
join users u on u.authorid = sms.authorid 
join defsmsstatus s on s.status_id = sms.status_id
where card_id = 10644617  
→ Ссылка
Автор решения: Alex R.

Вариант с подзапросами, почти без джоинов

select      
  (select u.Name from Users u where u.id = sms.authorid) user_name,
  (select s.Name from DEFSMSSTATUS s where s.id = sms.status_id) status_name 
from sms 
where card_id = 10644617
→ Ссылка