Skocz do zawartości
paplo22

[MYSQL] połączenie wielu tabel - problem

Polecane posty

Witam


struktura: bazajpg_snprqxh.jpg


przykładowe dane:



orders (1,1,'2015-12-23')
orders (2,1,'2015-12-23')


order_products (1,2,8)
order_products (2,2,1)


deliveries(1,1,'2015-12-23')
deliveries(2,1,'2015-12-23')


deliveries_products(1,1,15)
deliveries_products(1,2,10)
deliveries_products(2,1,10)
deliveries_products(2,2,5)


products(1,Bluzka)
products(2,Sukienka)



i teraz głowie się i nie umie wyświetlić produktu z jego aktualna ilością, zrobiłem takie zapytanie:



SELECT products.product_id, products.product_name, SUM(deliveries_products.quantity), SUM(order_products.quantity)
FROM products LEFT JOIN deliveries_products Using(product_id)
LEFT JOIN order_products Using(product_id)
GROUP BY product_id


to zapytanie jest najbliże tego co chcę uzyskać wypisuje:



1, Bluzka, 25, NULL
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

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie wiem w jakim stopniu ten obrazek odzwierciedla twoją bazę, ale w tabeli 'product' masz kolumnę 'products_id' a w tych które JOINujesz masz 'product_id'

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli to nadal aktualne to wrzuć dane na sqlfiddle lub daj tutaj dump z bazy w formie zapytań, żeby nie trzeba było klepać. Dump danych i struktury.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×