У меня есть три таблицы:MySQL Query - SUM из COUNT из нескольких таблиц
- клиентов: идентификатор, имя
- contracts_jewels: идентификатор, customer_id, оплаченные, переданы final_date
- контракты_объекты: id, customer_id, paid, transfer, final_date
Как вы видите, структура последних двух таблиц одинакова. «заплатил» и «переданы» поля содержат значение 0 или 1.
Что мне нужно сделать запрос, который должен вернуть все клиенты (независимо от того, если у них есть контракты или нет) и для каждого клиента: идентификатор, имя, count_contracts_all, count_contracts_active
где:
- count_contracts_all будет означать сумму [SELECT COUNT (*) FROM contracts_jewels ГДЕ customer_id = 3 (к примеру)] и [SELECT COUNT (*) FROM contracts_objects WHERE customer_id = 3 (к примеру)]
- count_contracts_active будет означать сумму [SELECT COUNT (*) FROM contracts_jewels ГДЕ customer_id = 3 и final_date> = Теперь() и оплаченных = 0 и переносили = 0] и [SELECT COUNT (*) оТ contracts_objects ГДЕ customer_id = 3 AND final_date> = Now() AND paid = 0 AND передано = 0]
Любая идея? Не могли бы вы помочь мне? Спасибо!
Я думаю, что UNION может помочь вам: 'ВЫБРАТЬ field_1 [, field_2 ...] ОТ table_1 [, table_2 ...] UNION [ALL] ВЫБРАТЬ field_a [, field_b ...] ОТ TABLE_A [ , table_b, ...]; ' – Holger