ČasProBydlení | MotorGuru | VipShow | NeposlušnéTlapky | HobbyDeník | Pravda24 | ČasProŽeny | ByznysDeník | TechSvět | MyMuži |
re: Vnořený MySQL dotaz (Cpt.Obvious) RP (1.10.2016 12:34) ⇥ |
↻ |
Dotaz jsem už překopal, takže funguje tak, jak jsem chtěl. Má nějaký amatérský web, takže tabulky celkově nedávají smysl, proč je něco tam a něco tady... Děkuji všem za rady. | |
re: Vnořený MySQL dotaz (vecernik) RP (1.10.2016 12:16) ⇥ |
↻ |
Asi je, ale tim padem cela struktura DB nedava smysl. | |
re: Vnořený MySQL dotaz (Roumen) R (1.10.2016 12:09) ⇥ |
↻ |
No cekal bych u zajezdu nejaky datum zakoupeni, ale v nabidnutych sloupeccich nebyl. V puvodnim dotazu byla zminovana aktivita, tak jsem predpokladal ze to je to co je pozadovano. | |
re: Vnořený MySQL dotaz (vecernik) RP (1.10.2016 12:00) ⇥ |
↻ |
cpt - ale uvedomujes si to ze tohle ti nevytahne lidi, kteri zakoupili zajezd 96825 pred rokem a vic? Tohle ti vytahne lidi, kteri KDYKOLIV koupili zajezd 96825 a kteri uz vice nez rok nebyli aktivni. Tedy lidi kteri koupili pred rokem ten zajezd, ale pak treba pred mesicem koupili jiny uz ve vypise zahrnuti nebudou. | |
re: Vnořený MySQL dotaz (Cpt.Obvious) RP (1.10.2016 11:33) ⇥ |
↻ |
@Roumen Díky, už to funguje, jak má, stačilo mě nakopnout. SELECT DISTINCT z.login FROM ucty z JOIN zakaznici za ON z.login=za.zakaznik_id JOIN zajezdy ba ON za.zakaznik_id=ba.zakaznik_id WHERE z.lastactive > DATE_SUB(curdate(), INTERVAL 1 YEAR) AND ba.zajezd_id = 96825; EDIT: Cpt.Obvious - 01.10.2016 11:36:45 |
|
re: Vnořený MySQL dotaz (Mem) RP (1.10.2016 11:22) ⇥ |
↻ |
„myslim ze aktivita ma byt kratka“ a klobása dlouhá, ano |
|
re: Vnořený MySQL dotaz (vecernik) RP (1.10.2016 11:20) ⇥ |
↻ |
@roumen - myslim ze aktivita ma byt kratka (tzn stale aktivni a ne opustene ucty) ale datum zakoupeni zajezdu ma byt starsi nez rok. (akorat zatim nam nebylo prozrazeno ktery sloupecek v tabulce zajezdu obsahuje datum zakoupeni) A v podmince ma byt celkem jasne uvedeny zajezd id 96825 (i kdyz to zrovna smysl nedava) Jinak je to hezke |
|
re: Vnořený MySQL dotaz (Roumen) R (1.10.2016 11:12) ⇥ |
↻ |
select distinct z.login, z.jmeno, z.prijmeni from zakaznici z join zajezdy za on z.login=za.login join ucty u on z.login=u.login where u.lastactive > DATE_SUB(curdate(), INTERVAL 1 YEAR); |
|
re: Vnořený MySQL dotaz (Cpt.Obvious) RP (1.10.2016 11:10) ⇥ |
↻ |
@vecernik: Myslel jsem tím před rokem a více. Délka nečinnosti je v tabulce ucty, ale jméno zákazníka je v tabulce zakaznici, proto ty tři tabulky. Já věděl, že se mu mám na to vykašlat. Ale díky za popostrčení, vyzkouším. | |
re: Vnořený MySQL dotaz (vecernik) RP (1.10.2016 11:05) ⇥ |
↻ |
cpt - vnorene dotazy jsi pochopil presne obracene. To co je vnorene slouzi jako podminka (tzn zajezdy where id = xxx) a to co je nad tim slouzi pro ziskani dat. V tomhle pripade bych se ale pripojil k mi0vi s joinem protože vnořený select je výkonově méně efektivní než jednoduchý join. Tzn: SELECT t1.* FROM zakaznici t1 LEFT JOIN zajezdy t2 ON t1.zakaznik_id = t2.zakaznik_id WHERE t2.zajezd_id = 96825 Tohle bys mel jeste dal rozsirit (dalsim joinem a dalsima podminkama) aby to bralo jen zajezdy koupene pred rokem (nevim co presne tim vyrazem myslis - presne pred rokem? pred rokem a vic? Pred rokem a min?) a pripadne to muzes rozsirit o ty ucty, ale tam jsem taky nepochopil co se tim vlastne snazis dat najevo protoze to zase neni popsane slovne - jako ze ucet musi byt aktivni? |
|
re: Vnořený MySQL dotaz (Cpt.Obvious) RP (1.10.2016 11:01) ⇥ |
↻ |
Je mi 40 let a domácí úkoly už nedělám, poprosil mě o tohle známý. tabulka ucty: login, heslo, registrovano, lastactive, email tabulka zakaznici: login, jmeno, prijmeni, adresa, telefon, atd..... tabulka zajezdy: login, zajezd_id, cena, sleva, atd...... |
|
re: Vnořený MySQL dotaz (mi0) RP (1.10.2016 10:57) ⇥ |
↻ |
Ak potrebuješ info o zákazníkoch, prečo robíš selekt nad tabuľkou "zajezdy"? Alebo začni tým, čo potrebuješ (SELECT * FROM zakaznici) alebo to sprav cez JOIN, nech tam máš stĺpce aj z tých zákazníkov... | |
re: Vnořený MySQL dotaz (grc) RP (1.10.2016 10:39) ⇥ |
↻ |
A za domaci ukol jste dostali pouzit prave vnorene sql? Jake sloupecky ty tabulky maji? | |
Vnořený MySQL dotaz (Cpt.Obvious) RP (1.10.2016 10:33) ⇥ |
↻ |
Zdravím osazenstvo. Potřebuji poradit s vnořeným MySQL dotazem. Chci si vytáhnout z DB všechny zákazníky, kteří si pred rokem zakoupili zájezd s ID 96825.Data se nachází ve třech tabulkách: zájezdy, zakaznici a ucty. Můj dotaz vypadá takto: SET @dt = 365; SELECT * FROM zajezdy WHERE zajezd_id = 96825 AND zakaznik_id (SELECT zakaznik_id FROM zakaznici WHERE login IN (SELECT login FROM ucty WHERE DATEDIFF( CURRENT_DATE( ) , FROM_UNIXTIME( `lastactive` /1000 ) ) > @dt; )); Dostal jsemse k tomu, jako slepy k houslim, zkousim a nejak to nefunguje. Díky za každou pomoc. EDIT: Cpt.Obvious - 01.10.2016 10:34:15 |
|