Size: a a a

2020 April 21

SM

Setplus Mac in Python Flask
Ребят, подскажите, пожалуйста, кто знаток в алхимии, не очень силён в этом просто.

Есть 4 таблицы, Category, User, Service и master_service.  Category и Service связаны отношением один ко многим, User и Service связаны отношением многие ко многим, ассоциативная таблица master_service. Если кратко, для каждой из таблиц (кроме ассоциативной) есть первичный ключ и название (имя).

Требуется получить те категории из Category, для которых существуют сервисы из Service, связанные с определённым пользователем из User.

Уже голову всю сломал, как заджойнить эти 4 таблицы..
источник

T

Tishka17 in Python Flask
select * from category c
where
exists(
   select 1 from service s
   join master_service ms
   on ms.service_id = s.id
   where s.category_id = c.id
   and ms.user_id = ?
)
источник

T

Tishka17 in Python Flask
Setplus Mac
Ребят, подскажите, пожалуйста, кто знаток в алхимии, не очень силён в этом просто.

Есть 4 таблицы, Category, User, Service и master_service.  Category и Service связаны отношением один ко многим, User и Service связаны отношением многие ко многим, ассоциативная таблица master_service. Если кратко, для каждой из таблиц (кроме ассоциативной) есть первичный ключ и название (имя).

Требуется получить те категории из Category, для которых существуют сервисы из Service, связанные с определённым пользователем из User.

Уже голову всю сломал, как заджойнить эти 4 таблицы..
^
источник

T

Tishka17 in Python Flask
а, тебе алхимию
источник

T

Tishka17 in Python Flask
но принцип тот же
источник

SM

Setplus Mac in Python Flask
так)
источник

SM

Setplus Mac in Python Flask
во-первых, спасибо за ответ)
источник

SM

Setplus Mac in Python Flask
сейчас попробую в терминах алхимии так сказать
источник

SM

Setplus Mac in Python Flask
Category.query.join(Service, Service.cat_id==Category.id).join(master_service, master_service.service_id==...
источник

SM

Setplus Mac in Python Flask
у меня вот тут каша возникла. Если можно, я по шагам
источник

SM

Setplus Mac in Python Flask
1. Выполняем запрос к Category: Category.query.
источник

T

Tishka17 in Python Flask
чо
источник

T

Tishka17 in Python Flask
exists
источник

T

Tishka17 in Python Flask
не джойн
источник

T

Tishka17 in Python Flask
subqeury.exists
источник

SM

Setplus Mac in Python Flask
Category.subquery.exists().where(<тело условия>)
источник

SM

Setplus Mac in Python Flask
так начинается?
источник

T

Tishka17 in Python Flask
subquery = query(Service).join(...).filter(...)
query(Category).filter(exists(subquery)).all()
источник

T

Tishka17 in Python Flask
кажется так
источник

SM

Setplus Mac in Python Flask
воу
даже не знал, что так можно делать
источник