Zadejte hledaný výraz...

SQL dopyt

Karol Smolík
verified
rating uzivatele
(5 hodnocení)
4. 11. 2012 22:50:54
Zdravím, potreboval by som poradiť s jedným SQL dopytom:
Mám hlavnú tabuľku: table_1
a druhú tabuľku: table_2
z prvej tabuľky vyberám údaje dopytom:
Potrebujem do tohoto dopytu doplniť join z table_2 alebo niečo podobné, podľa podmienok:
s tým, že time_hour sú prvé 2 čisla z time.
Napríklad:
time = time_hour
105554 = 10
112019 = 11
152600 = 15
Z druhej tabuľky potrebujem vydolovať hodnotu v stĺpci point. Ak bude mať dopyt null-ovú hodnotu v položke point, urobiť toto isté ale podmienku time = time_hour upraviť na time = time_hour - 1, a ak bude zase null, tak time = time_hour + 1. A tým sa to skončí už je jedno či bude výsledok null alebo nie.
Neviem, či je to zrozumiteľné, ale hádam áno. Doteraz to riešim v php, že vyberiem všetko a následne selektujem, ale tabuľky obsahujú aj 10 000 riadkov a nie je to efektívne.
Za každú odpoveď vopred ďakujem.
4. 11. 2012 22:50:54
https://webtrh.cz/diskuse/sql-dopyt#reply827989
vlnk
verified
rating uzivatele
(4 hodnocení)
5. 11. 2012 00:04:23
.
select t1.*,coalesce(t2a.point,t2b.point,t2c.point)as point
from table_1 t1
left join table_2 t2a on t1.date = t2a.date AND t1.user LIKE t2a.user AND hour(t1.time) = t2a.time_hour
left join table_2 t2b on t1.date = t2b.date AND t1.user LIKE t2b.user AND hour(t1.time) = t2b.time_hour - 1
left join table_2 t2c on t1.date = t2c.date AND t1.user LIKE t2c.user AND hour(t1.time) = t2c.time_hour + 1
5. 11. 2012 00:04:23
https://webtrh.cz/diskuse/sql-dopyt#reply827988
Pro odpověď se přihlašte.
Přihlásit