У меня есть 2 запроса с одинаковыми 3 связанными таблицами, и каждая из них работает отлично. Но в идеале я хотел бы объединить их в один запрос. Итак: < /p>
select me.id, me.title, me.start_date_time,
count(mti.checkin) from mco_event me
left outer join mco_ticket_instance as mti on mti.event_id = me.id and mti.checkin is not null
where me.start_date_time > '2024-01-01'
group by me.id order by me.start_date_time asc;
< /code>
Получает мне правильный счет чеков. < /p>
select me.id, me.title, me.start_date_time,
count(mol.status) from mco_event as me
join mco_ticket_instance mti1 on mti1.event_id=me.id
join mco_order_line mol on mol.id = mti1.order_line_id and mol.status='order_paid'
where me.start_date_time > '2024-01-01'
group by me.id order by me.start_date_time asc;
< /code>
Второй дает мне допустимый (order_paid) счет. Но если я комбинирую это: < /p>
select me.id, me.title, me.start_date_time,
(select sum(mol.quantity) from mco_order_line mol
inner join mco_ticket_type mtt on mol.ticket_type_id = mtt.id and mtt.event_id = me.id
where mol.status='order_paid') as quantity,
(select count(mti.checkin) from mco_ticket_instance mti
where mti.event_id = me.id and mti.checkin is not null) as checkins
from mco_event me
where me.start_date_time > '2024-01-01'
group by me.id order by me.start_date_time asc;
< /code>
Это дает правильные значения, но он вращается в течение 15 секунд вместо нескольких микросекундов, таких как отдельные, отдельные запросы. Прямо сейчас код моего приложения запускает 2 отдельных запроса, а затем сшивает 2 массива, которые просто кажется неэффективным (и также занимает некоторое время).
Подробнее здесь: https://stackoverflow.com/questions/797 ... le-selects