![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 19.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
witam,
mam takie tabele produkty ( p_id - primary key, p_nazwa p_cena ) magazyn ( m_id - primary key m_ulica m_kod m_miasto ) stan ( stan_id - primary key stan_m_id - foregin key powiazany z magazyn stan_p_id - foregin key powiazany z produkty stan_ilosc ) chce wyswietlic wszystkie produkty ktore znajduja sie w magazynie o m_id=1 ale zwykly inner join mi nie starczy, bo ja chce miec WSZYSTKIE produkty a wartosci stanu magazynu z tabeli stan, a tam gdzie nie ma produktow na stanie, to chcialbym widziec 0, innymi slowy interesuje mnie cos takiego m_id-----p_id-----stan_ilosc -------------------------------------- 1------------1------------10 1------------2------------0 1------------3------------7 1------------4------------0 normany inner join da mi m_id-----p_id-----stan_ilosc -------------------------------------- 1------------1------------10 1------------3------------7 jesli zrobie left join'a to da mi wszystkie produkty, ale gdy dodam where m_id = 1 to znowu mam to samo co z inner joina.. any idea? Ten post edytował Lardux 19.05.2005, 16:40:23 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 13.07.2003 Skąd: Torun/Poznan Ostrzeżenie: (0%) ![]() ![]() |
Moze tak?
Pozdrawiam. -------------------- On the day I was born, the nurses all gathered 'round
And they gazed in wide wonder, at the joy they had found |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 16.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze zrozumiałem, to to powinno dać pożądany rezultat:
Można oczywiście przestawić tabele i dać LEFT JOIN zamiast RIGHT, ale już mi się nie chciało. ![]() Ten post edytował amwoan 19.05.2005, 19:10:03 -------------------- Pozdrawiam.
BYKOM-STOP! |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 19.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
pierwsza odpowiedz to zwykly inner join - nie dziala
druga odpowiedz daje same zera - nie dziala... potrzebuje wszystkie produkty i ich stan, jesli jest, jesli nie ma to null, przyklad, mamy 3 produkty, jeden magazyn, na stanie jest jeden produkt, sql daje nam w wyniku 3 rekordy, z ktorych jeden posiada wartosc stan = np 17 (bo tyle akurat jest go na magazynie) a reszta rekordow posiada pole stan = NULL, jesli nie damy warunku where magazyn id = jakis numerek to wszystko dziala za pomoca zwyklego left joina, lecz gdy dochodzi warunek magazyny, nawet jak dam magazyn id = 1 or magazyn id is null - to nie dziala... moze ktos ma jeszcze jakis pomysl?? edit, problem rozwiazany... SELECT * FROM produkty Left JOIN stan ON stan.stan_p_id=produkty.p_id and stan.stan_m_id=17 or stan.stan_m_id is null Ten post edytował Lardux 2.06.2005, 12:20:44 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:30 |