sql Wählen Sie die Anzahl mehrerer Beziehungen mit linker Verknüpfung aus

8

Ich habe eine Tabelle für "Filialen", "Bestellungen" und "Produkte. Jede Bestellung und jedes Produkt sind mit einem Zweig mit Niederlassung_ID verbunden. Ich brauche eine SQL-Anweisung, um eine Liste aller Filialen mit einem Feld für wie viele Bestellungen zu erhalten und ein Feld für wie viele Produkte.

Das funktioniert:

SELECT b.*, COUNT(o.id) AS orderCount FROM branches b LEFT JOIN orders o ON (o.branch_id = b.id) GROUP BY b.id

aber es bekommt nur die Menge an Bestellungen, nicht Produkte. Wenn ich es ändere, um die Menge der Produkte hinzuzufügen, sind die Beträge falsch, weil es die Menge der Bestellungen * Menge der Produkte bekommt.

Wie kann ich die Menge der Bestellungen und der Produkte in derselben SQL-Anweisung erhalten?

    
user2306941 27.05.2013, 09:13
quelle

2 Antworten

10

So etwas sollte funktionieren (zumindest auf dem sql-Server - Sie haben Ihre Engine nicht angegeben).

%Vor%     
Adam Luniewski 27.05.2013, 09:19
quelle
5

Bitte versuchen Sie:

%Vor%     
TechDo 27.05.2013 09:19
quelle

Tags und Links