У меня есть три таблицы: потоки , типы_документов и документы . Потоки имеют много документов, которые относятся к типу документа.
Допустим, мне нужно выбрать все потоки, в которых есть документы, принадлежащие к определенному списку типов документов, например, где идентификатор типа документа в 1, 2, 3 и 4. Другими словами, я хочу выбрать только потоки у которого есть документы со ВСЕМ вышеупомянутым идентификатором типа документа. Как использовать логику / запрос?
Моя первая попытка была с where in
, но она не гарантирует, что документы имеют все типы документов, она запрашивает хотя бы один:
select * from flows where id in (
select flow_id from documents where document_type_id in (1, 2, 3, 4)
);
Я должен написать свои запросы с помощью Laravel Eloquent, но после обнаружения правильной логики это будет тривиально.