У меня есть следующие таблицы:
Animals (animal_id, producer_id, ...)
Producers (prod_id, ...)
BoughtAnimals (animal_id (fk), ...)
, и я хотел бы сделать запрос, который скажет мне для каждого производителя, сколько у него животных и сколько было куплено этих животных.После долгих раздумий я попробовал следующий подход:
select Producers.name, count (distinct A1.animal_id), count(distinct BoughtAnimals.animal_id)
from Producers, Animals A1, Animals A2, BoughtAnimals
where
Producers.nif = A1.producer_id and
Producers.nif = A2.producer_id and
BoughtAnimals.animal_id = A2.animal_id
group by Producers.name;
, но я сделал это только методом проб и ошибок, и мне трудно рассуждать сразу о нескольких таблицах Animal.Есть ли другой способ сделать этот запрос?Или это обычный способ сделать это?