Существует гипотетическая таблица Table1 со столбцами:
- id
- условие 1
- условие 2
- joinable_key
Есть еще один, Main_Table, чей ID соответствует ключу joinable_key в первом.
Я хотел бы присоединиться к ним таким образом, чтобы я мог посчитать строки Таблицы в соответствии скак к условию 1, так и к условию 2 по отдельности - то есть я бы хотел иметь возможность выполнить «count (Table1.condition1) как first_condition, count (Table1.condtion2) как second_condition» в запросе выбора.
По-видимому, запрос будет выглядеть примерно так:
SELECT Main_Table.some_column, COUNT(Table1.condition1) AS first_condition, COUNT(Table1.condtion2) AS second_condition
FROM Main_Table
LEFT JOIN Table1 AS T1 on (T1.joinable_key = Main_Table.id AND T1.condition1 = 'something')
LEFT JOIN Table1 AS T2 on (T2.joinable_key = Main_Table.id AND T2.condition2 = 'something else')
GROUP BY (Main_Table.id)
Однако при выполнении оба результата подсчета равны и фактически умножаются друг на друга.Крайне важно, чтобы все результаты были включены в окончательный вывод, включая результаты, в которых нет записей из Таблицы 1, то есть, если в Таблице 1 нет строки с ключом joinable_key, равным Main_Table.id, его также необходимо включить.
Прежде чем кто-либо предложит сделать два отдельных запроса и обработать их с помощью PHP - да, я знаю, почему и как это можно сделать, но моя цель - выяснить, можно ли выполнить этот мультисчет всев одном запросе.
Спасибо