Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Left Join - problem
Lardux
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
amwoan
post
Post #2





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:
  1. SELECT magazyn.m_id, produkty.p_id, IF(stan.stan_ilosc, stan.stan_ilosc, 0) AS stan_ilosc
  2. FROM produkty INNER JOIN stan ON stan.stan_p_id=produkty.p_id RIGHT JOIN magazyn ON stan.stan_m_id=magazyn.m_id WHERE magazyn.m_id=1

Można oczywiście przestawić tabele i dać LEFT JOIN zamiast RIGHT, ale już mi się nie chciało. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował amwoan 19.05.2005, 19:10:03
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 16:44