Forum » Programiranje » [MySQL] pomoč pri queriju
[MySQL] pomoč pri queriju
iMark ::
Pozdravljeni,
Prosil bi za pomoč pri izvedbi naslednjega querija:
Okrnjena shema:
Drzave [ID, kontinent_ID, ime]
Kontinenti [ID, kontinent]
Uporabniki [ID]
Zbirka [ID, uporabnik_ID, drzava_ID, stevilo, album_ID]
Problem:
Želel bi izpisati vse elemente tabele Drzave, s tem, da v primeru, če tabela Zbirka vsebuje ID države (torej drzava_ID) izpiše še "stevilo", drugače pa v stolpec za stevilo vstavi "0". V pogoju mora biti tudi ujemanje uporabnika, torej če izpisujemo vsebino za uporabnika z ID=1, naj tudi iz tabele zbirka prebere le elemente, ki ustrezajo uporabniku s takim ID-jem.
Sam sem skušal na spodaj naveden način ampak se atribut "stevilo" izpise samo za 1. vnos v tabeli Zbirka, vse ostale drzave pa se izpišejo z ničlo v stolpcu.
Poskušal sme tudi z ugnezdenimi selecti ampak mi je ugnezdena poizvedba vrnila več elementov kar je pomenilo da nisem mogel primerjati...
Kateri način bo pravi za tako poizvedbo?
Lep pozdrav in hvala.
Prosil bi za pomoč pri izvedbi naslednjega querija:
Okrnjena shema:
Drzave [ID, kontinent_ID, ime]
Kontinenti [ID, kontinent]
Uporabniki [ID]
Zbirka [ID, uporabnik_ID, drzava_ID, stevilo, album_ID]
Problem:
Želel bi izpisati vse elemente tabele Drzave, s tem, da v primeru, če tabela Zbirka vsebuje ID države (torej drzava_ID) izpiše še "stevilo", drugače pa v stolpec za stevilo vstavi "0". V pogoju mora biti tudi ujemanje uporabnika, torej če izpisujemo vsebino za uporabnika z ID=1, naj tudi iz tabele zbirka prebere le elemente, ki ustrezajo uporabniku s takim ID-jem.
Sam sem skušal na spodaj naveden način ampak se atribut "stevilo" izpise samo za 1. vnos v tabeli Zbirka, vse ostale drzave pa se izpišejo z ničlo v stolpcu.
SELECT drzave.ID, kontinenti.kontinent, drzave.ime, IF(zbirka.drzava_ID = drzave.ID AND zbirka.uporabnik_ID = 1, zbirka.stevilo, 0) FROM drzave, zbirka, uporabniki, kontinenti WHERE uporabniki.ID = zbirka.uporabnik_ID AND drzave.kontinent_ID = kontinenti.ID AND zbirka.uporabnik_ID = 1
Poskušal sme tudi z ugnezdenimi selecti ampak mi je ugnezdena poizvedba vrnila več elementov kar je pomenilo da nisem mogel primerjati...
Kateri način bo pravi za tako poizvedbo?
Lep pozdrav in hvala.
- spremenil: iMark ()
iMark ::
Ubistvu sm ugotovu da sem pravilno spisal query, le da bi moral še "distinct" uporabit. No...vsaj upam da ne bo problemov v nadalnje.
iMark ::
No ja... skoraj rešeno. Sedaj mi podvoji dražavo, ki se nahaja v zbirki; torej izpiše najprej državo x s številom 0 nato pa še isto državo s številom iz tabele zbirka.
Kakšen predlog?
Kakšen predlog?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL vprasanje (strani: 1 2 )Oddelek: Programiranje | 8348 (5027) | BivšiUser2 |
» | [SQL] Unikatni izpisiOddelek: Programiranje | 2220 (1607) | 111111111111 |
» | Baze ter relation med njimiOddelek: Programiranje | 3334 (2895) | Marat |
» | PHP prikaz objav od prijateljevOddelek: Izdelava spletišč | 919 (726) | Ziga Dolhar |
» | baze podatkovOddelek: Programiranje | 1563 (1482) | urkrajnc |