我有以下表格:执行此查询的其他方法?
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;
,但我只能通过试验和错误做了,我觉得很难推论几种动物的表一次。有没有其他的方法来做这个查询?或者这是通常的做法吗?
如果停止使用隐式语法并了解连接,您将会更好地理解如何更好地进行查询。 – HLGEM 2011-02-03 18:11:18