Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: połączenie trzech tabel - podwaja mi wartość
Forum PHP.pl > Forum > Bazy danych > MySQL
Paplo
Witam

struktura:

przykładowe dane:
  1. orders (1,1,'2015-12-23')
  2. orders (2,1,'2015-12-23')
  3.  
  4. order_products (1,2,8)
  5. order_products (2,2,1)
  6.  
  7. deliveries(1,1,'2015-12-23')
  8. deliveries(2,1,'2015-12-23')
  9.  
  10. deliveries_products(1,1,15)
  11. deliveries_products(1,2,10)
  12. deliveries_products(2,1,10)
  13. deliveries_products(2,2,5)
  14.  
  15. products(1,Bluzka)
  16. products(2,Sukienka)


i teraz głowie się i nie umie wyświetlić produktu z jego aktualna ilością, zrobiłem takie zapytanie:
  1. SELECT products.product_id, products.product_name, SUM(deliveries_products.quantity), SUM(order_products.quantity)
  2. FROM products LEFT OUTER JOIN deliveries_products USING(product_id)
  3. LEFT OUTER JOIN order_products USING(product_id)
  4. GROUP BY product_id

to zapytanie jest najbliże tego co chcę uzyskać wypisuje:
  1. 1, Bluzka, 25, NULL
  2. 2, Sukienka, 30, 18

Dlaczego on mi podwaja ten drugi produkt? w sensie powinno być 15 (dostawy 10 + 5 ), a robi *2, oraz powinno być 9 ( bo zamówień na prod 2 mam 8 i 1 )
Na pewno coś brakuje w zapytaniu lub jest całkowicie źle wiec proszę o pomoc
Tomplus
Nie wystarczy tylko LEFT JOIN użyć?

Paplo
ten sam wynik przy LEFT JOIN
DarkAbso
http://sqlfiddle.com/#!9/21fd4/22
Paplo
dzięki wielkie, jesteś mega
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.