SELECT tuotteet.ID, tuotteet.koodi, tuotteet.nimi, tuotteet.alv, tuotteet.hinta, varasto_tuote.varasto_id, varasto_tuote.tuote_id, varasto_tuote.kpl, varasto_tuote.alaraja, varastot.ID, varastot.paikkakunta FROM tuotteet LEFT JOIN varasto_tuote ON varasto_tuote.tuote_id=tuotteet.ID LEFT JOIN varastot ON varastot.ID=varasto_tuote.varasto_id WHERE varastot.ID='".$user['varasto_id']."' ORDER BY tuotteet.koodi ASC
mitäs tuohon pitää muuttaa että tuotteet taulusta tulostetaan kaikki tuotteet oli niitä varastossa tai ei. Nyt jos vaikka varaston 1 saldoissa on vaikka 5kpl tuotteita, se tulostaa vain ne tuotteet, mutta tarve olisi tulostaa myös kaikki tuotteet samaan taulukkoon 0kpl tiedolla.
Ja varmaankaan varasto_tuote-taulussa ei ole rivejä, jos tuotteen kpl-määrä on 0 ?
juu ei.
Eli tuotteet taulussa on kaikkien tuotteiden tiedot.
varastot taulussa on varastojen nimet ja paikkakuntatiedot.
varasto_tuote taulussa on kunkin varaston ja tuotteen kappalemäärät ym tiedot.
Miksi varaston id-numero laitetaan where-ehdoksi? Jos haluat listata kaikkien varastojen kaikki tuotteet ei kannata ehdoksi mitään.
Koska on tarkoitus tulostaa kyseisen varaston varastosaldot sekä kaikki tuotteet.
Kun varastoa koskeva ehtosi on WHERE-kohdassa, kyselyyn tulevat vain ne rivit, joilla ehto toteutuu. Jos haluat kaikki tuotteet mutta vain tietyn varaston saldon, ehto kuuluu jommankumman liitoksen ON-kohtaan.
eli voin laittaa left join lausekkeisiin omat where lausekkeet?
Ei, vaan LEFT JOINissa on tuo ON-kohta, jossa sinulla on jo yksi ehto mutta johon voi laittaa kyllä kaikenlaisia muitakin ehtoja.
Aihe on jo aika vanha, joten et voi enää vastata siihen.