Переписываем запрос из in () в соединения

Можете ли вы помочь переписать это в соединениях?

select * from users where users.advised_by in (
select p.id 
from advisors p
join advisor_members m on p.id = m.advisor_id
join representatives r on m.user_id=r.user_id
where m.memeber_type='Advisor'
)

Это часть запроса на 200+ строк, и оператор in () трудно поддерживать, когда есть изменения.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
0
24
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

вы должны использовать правильное предложение

select * 
from users 
inner join 
(
select p.id 
from advisors p
join advisor_members m on p.id = m.advisor_id
join representatives r on m.user_id=r.user_id
where m.memeber_type='Advisor'
) t on users.advised_by  = t.id

/*Опция 1 */

ВЫБРАТЬ * ОТ пользователей usr ВНУТРЕННЕЕ СОЕДИНЕНИЕ ( ВЫБЕРИТЕ p.id AS Advisor_id ОТ консультантов p ПРИСОЕДИНЯЙТЕСЬ ВКЛ p.id = m.advisor_id ПРИСОЕДИНЯЙТЕСЬ к представителям r ВКЛ m.user_id = r.user_id ГДЕ m.memeber_type = 'Advisor') T2 usr.advised_by = t2.advisor_id

/ * Вариант 2 - * / ВЫБРАТЬ * ОТ пользователей usr Советники INNER JOIN p НА usr.advised_by = p.id ПРИСОЕДИНИТЬСЯ ( ВЫБРАТЬ * ОТ Advisor_members ГДЕ m.memeber_type = 'Advisor') m ВКЛ p.id = m.advisor_id ПРИСОЕДИНЯЙТЕСЬ к представителям r ВКЛ m.user_id = r.user_id

Другие вопросы по теме