Запрос 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