Stellen Sie sich zunächst vor, die beiden Abfragen wären nur Tabellen. Sie würden dies tun:
select a.producer, a.firstquerycolumn, b.secondquerycolumn
from table1 a
join table2 b on b.producer = a.producer
Sie können jede Tabelle durch eine Abfrage ersetzen (bekannt als Inline-Ansicht):
select a.Prod, a.AnimalsBought, b.AnimalsExploration
from
( select Producers.name Prod, count(Animals.idanimal) AnimalsBought
from AnimalsBought, Animals, Producers
where (AnimalsBought.idanimal = Animals.idanimal)
and (Animals.owner = Producers.nif)
group by Producers.name
) a
join
( select Producers.name Prod, count(Animals.idanimal) AnimalsExploration
from AnimalsExploration, Animals, Producers
where (AnimalsExploration.idanimal = Animals.idanimal)
and (Animals.owner = Producers.nif)
group by Producers.name
) b
on a.Prod = b.Prod;
Möglicherweise müssen Sie meinen "Join" in "Full Outer Join" ändern, wenn eine Abfrage möglicherweise Daten für einen Produzenten zurückgibt, während die andere dies nicht tut. Ich würde auch dazu neigen, die Abfrage wie folgt umzustrukturieren, indem ich eine Hauptabfrage für Producers mit den beiden Unterabfragen (mit entfernten Producers) verknüpft mache:
select Producers.name Prod, a.AnimalsBought, b.AnimalsExploration
from Producers
left outer join ( select Animals.owner, count(AnimalsBought.idanimal) AnimalsBought
from AnimalsBought, Animals
where AnimalsBought.idanimal = Animals.idanimal
group by Animals.owner
) a
on a.owner = Producers.nif
left outer join ( select Animals.owner, count(Animals.idanimal) AnimalsExploration
from AnimalsExploration, Animals
where AnimalsExploration.idanimal = Animals.idanimal
group by Animals.owner
) b
on b.owner = Producers.nif;
(Es ist diese Art von Abfrage, deren Leistung ich unten getestet habe).
Anstatt diese Antwort mit Informationen aufzublähen, die für das OP wahrscheinlich nicht von Interesse sind, sind meine Notizen zur relativen Leistung von skalaren Unterabfragen und Inline-Ansichten in Oracle (angefordert von PerformanceDBA) jetzt hier offline:Hinweise zur Leistung