2016-06-10 7 views
0

Rückkehr habe ich eine Tabellenstruktur wie folgt vor:einen einzelnen Datensatz von vielen zu vielen Tabelle

Benutzer => Historien < = Marken

Histories Tabellenspalten folgende hält: userId, brandid,

Punkte ich habe eine Abfrage wie folgt vor:

select b.id, sum(h.points),h.brandId 
from brands b left join 
    histories h 
    on b.id = h.brandid and h.userId = 2866 
group by b.id; 

Diese Abfrage gibt mir Marken wo USER Punkte gemacht und hatten keine Punkte machen überhaupt ..

Ich möchte einen Filter zu einem BrandId auch hinzufügen, so dass die Abfrage nicht alle Ergebnisse zurückgibt, sondern ein einziges Ergebnis zu einem Zeitpunkt, je nachdem, was BrandId an die Abfrage gesendet wurde ... Wie kann ich und wo kann Ich füge eine Aussage hinzu, die mir einen einzelnen Rekord für diese Frage zurückgeben würde ?? Also im Grunde muß ich nur passieren brandid = etwas Aussage, die Abfrage sich selbst zu verlassen, wie es jetzt ist ... :)

Antwort

1

Zum Beispiel, wenn Marke ID ist 100:

select b.id, sum(h.points),h.brandId 
from brands b left join 
    histories h 
    on b.id = h.brandid and h.userId = 2866 
where b.id=100 
group by b.id 
limit 1;