2016-07-31 14 views
0

Wie Sie am Titel sehen können, kann ich nicht wirklich ausdrücken, was ich tun möchte. Im Grunde habe ich 2 Tabellen:SQL Multiplikation Ergebnis der Unterabfrage mit anderen

--offers-- 
offer_id varchar 
offer_price int 

--carts-- 
user_name varchar 
offer_id varchar 
offer_count int 

Jetzt möchte ich den Gesamtpreis aller Artikel im Warenkorb (Warenkorb) erhalten. Ich habe so weit gekommen:

select sum(offer_price) from offers where offer_id IN 
(
    select offer_id from carts where user_name='root' 
); 

jedoch dieser Ansatz ignoriert vollständig die offer_count Wert des Warenkorbs. Wie würde ich das umsetzen? (Ich bin relativ unerfahren in SQL)

Antwort

1

Sie die Tabellen beitreten sollte:

select 
    sum(c.offer_count * o.offer_price) total 
from carts c 
    join offers o 
on c.offer_id = c.offer_id 
where c.user_name = 'root' 
+0

Sie könnten eine kleine Erklärung hinzufügen, damit er versteht, was Sie hier machen. – antorqs

+0

Vielen Dank! Obwohl du einen kleinen Tippfehler gemacht hast. Es sollte "auf c.offer_id = o.offer_id" sein, nur wenn jemand die gleiche Frage hat ;-) – Addi