Forum » Izdelava spletišč » mysql poizvedba
mysql poizvedba
sebavet ::
zdravo, v mysql imam sledečo tabelo:
še opisno: vsak user ima določeno množico kod (5,6,10,100...). Vsaka koda vsakega userja se na določen datum nahaja v enem izmed štirih zgoraj omenjenih stanji.
npr:
rad bi naredil poizvedbo, ki bi mi za posameznega (trenutno logiranega) userja izpisala v kakšnem stanju so njegove kode na zadnji vpisan datum. Če je logiran npr: igor je zadnje stanje max(datumd) njegovih kod sledeče
poskusil sem že:
in
rezultati obojega so napačni. Kakšna ideja, kaj je narobe?
id tipa integer, datumd tipa date, koda tipa integer, stanje (4 možnost: "stand by", "on", "off", "waiting") tipa string :), user tipa string
še opisno: vsak user ima določeno množico kod (5,6,10,100...). Vsaka koda vsakega userja se na določen datum nahaja v enem izmed štirih zgoraj omenjenih stanji.
npr:
1.1.2014 5 "stand by" poldek 1.1.2014 2 "off" igor 1.1.2014 5 "on" jaka 2.1.2014 1 "off" igor 3.1.2014 1 "stand by" igor 4.1.2014 2 "stand by" igor ...
rad bi naredil poizvedbo, ki bi mi za posameznega (trenutno logiranega) userja izpisala v kakšnem stanju so njegove kode na zadnji vpisan datum. Če je logiran npr: igor je zadnje stanje max(datumd) njegovih kod sledeče
3.1.2014 1 "stand by" 4.1.2014 2 "stand by"
poskusil sem že:
select koda, stanje, datumd from (select max(datumd) as zadnjidatum from tabela1 where iduser='$user' group by koda) as x join tabela1 on x.zadnjidatum=tabela1.datumd group by koda
in
select max(datumd), koda, stanje from tabela1 where iduser='$user' group by koda
rezultati obojega so napačni. Kakšna ideja, kaj je narobe?
- spremenil: Gandalfar ()
LordVeon ::
SELECT T1.koda, T1.stanje, T1.datumd FROM (SELECT MAX(datumd) AS zadnjidatum, koda, user FROM tabela1 T1 WHERE user='$user' GROUP BY koda) AS x JOIN tabela1 T1 ON x.zadnjidatum=T1.datumd AND x.koda = T1.koda AND x.user = T1.user
Join je bil premalo omejen in je zajel podatke od drugih userjev, končni group by koda nepotreben
sebavet ::
sem bil malo prehiter;
dela na localhostu, dela na serverju phpmyadmin, ne dela pa v php kodi na serverju, za pop.....it ... ne vem kaj bi lahko blo narobe, ker sem vse samo kopiral, nič prirejal ... :)
dela na localhostu, dela na serverju phpmyadmin, ne dela pa v php kodi na serverju, za pop.....it ... ne vem kaj bi lahko blo narobe, ker sem vse samo kopiral, nič prirejal ... :)
sebavet ::
$result je prazen, nič ni v mysql queriju. moj prejšnji query, ki ni deloval prav je deloval, ampak ne pravilno
je mogoče v tvojemqueriju kak izraz, ki ga server ne razume, bi bilo to mogoče?
select koda, stanje, datumd from (select max(datumd) as zadnjidatum from tabela1 where iduser='$user' group by koda) as x join tabela1 on x.zadnjidatum=tabela1.datumd group by koda
je mogoče v tvojemqueriju kak izraz, ki ga server ne razume, bi bilo to mogoče?
sebavet ::
našel, končno, moja napaka pri zapiranju baze, hvala vseeno. @LordVeon, kako naj najdem kdaj (datumd) je bilo stanje kode (rabim seznam za vse kode pri določenem userju) zadnjič na "off".
moj query je:
se ti zdi pravilen zapis?
ne zmorem testirat pri več userjih, hvala.
moj query je:
select koda, datumd from tabela1 join (select max(datumd) as zadnjidatum from tabela1 where stanje= 'off' and user='$user' group by koda) as x on x.zadnjidatum=tabela1.datumd group by koda
se ti zdi pravilen zapis?
ne zmorem testirat pri več userjih, hvala.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL vprašanjeOddelek: Programiranje | 1130 (729) | MrStein |
» | SQL syntax napakaOddelek: Programiranje | 1622 (1113) | MrStein |
» | [SQL] Unikatni izpisiOddelek: Programiranje | 2249 (1636) | 111111111111 |
» | sql select stavekOddelek: Programiranje | 1487 (1389) | zavajon |
» | MYSQL vprašanjeOddelek: Programiranje | 1816 (1431) | MrBrdo |