PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Mysql lause ehitus
Postitaja: anz2 2005-03-28 16:13:43
Tekkis üks probleem, mida on väga raske seletada aga püüan. On kaks tabelit isikute tabel ja ajaloo tabel. Ühes isikute nimekiri (a'la id, eesnimi, perenimi, telefon, osakond, jne.) ja teises tabelis salvestatakse isikute toimingute ajalugu (isikuid, aeg, tegevus, staatus). Ajaloo tabel on siis selle mõttega et saaks vaadata isiku hetke seisu aga kuna seal on ühe isiku kohta mitu sissekannet ma pean isiku id järgi grupeerima ja siis aja tabeli järgi reastama, kuid see reastamine pole enam õige, võetakse mingid suvalised ajahetked (minuarust). Lause on selline:
SELECT i.*, a.staatus, a.aeg FROM isikud i LEFT JOIN ajalugu a ON i.id = a.isikuid WHERE osakond = 1 GROUP BY i.id ORDER BY o.aeg DESC;

kui ma vaatan otse andmebaasist siis viimased salvestused on kuskil 15.34 aga kui ma nii vaatan siis on salvestused kuskil kella 10 ajal tehtud ...
RE: Mysql lause ehitus
Postitaja: gdf 2005-03-28 18:08:08
ASC on uusim sisestus
RE: Mysql lause ehitus
Postitaja: andu17 2005-03-30 03:31:39
samas pole ASC lisamine üldse vajalik, see on default ja kui panna ORDER BY tulp siis see ongi juba sama mis ORDER BY tulp ASC
RE: Mysql lause ehitus
Postitaja: anz2 2005-03-30 07:52:09
Noh eriti vahet pole, kuna asc peaks siis ikkagi ju lihtsalt reastama teispidi ... aga see aeg võetakse kuskilt suvaliselt vahepeal tehtud salvestuselt.
RE: Mysql lause ehitus
Postitaja: Meez kes jala ei käi ja vett ei joo 2005-03-30 12:40:13
TSITEERITUD:
ASC on uusim sisestus


Mes te ajate, asc = ascending? Kasvav? DESC võtab kahanevas järjekorras, ehk siis kõiksepäält uuemad kirjed.
RE: Mysql lause ehitus
Postitaja: kilukarp 2005-03-30 15:02:27
mis sa ise arvad, mida peaks sql-i server tegema?
valid välja portsu i-tabelist, vähendad tulemused 1-le reale ning liidad sellele a-tabelist ühe rea (left join), millel ainsaks tingimuseks on, et oleks sama isiku id-ga

äkki abiks max() või siis teistmoodi joinimine või hoopis teisiti grupeerimine?
RE: Mysql lause ehitus
Postitaja: anz2 2005-03-30 15:38:54
Ma ei tea täpselt kuidas sql server töötab, kuid ma lootsin lihtsalt, et ta enne rastaks ajaliselt ära ja siis liidaks selle rea juurde ... :) lootus on lollide lohutus
RE: Mysql lause ehitus
Postitaja: kilukarp 2005-03-30 15:52:51
kasuta näiteks max(a.aeg) as aeg

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0849719047546