Zadejte hledaný výraz...

Pouzivani vnorenych selectu

Kamil Hurajt
verified
rating uzivatele
(8 hodnocení)
2. 11. 2011 16:43:10
Dobry den ,
mam otazku mam nekolik vnorenejch selectu v sql
select
column
column1
,(SELECT ....) as nazev
FROM table
a potrebuji pouzit nazev v klauzule where , napr where nazev > 10 no v pripade ze to tak udelam tak mi to vypise ze neexistuje sloupec, i kdyz sloupec neexistuje ale byl vytvoren alias, nevite poradit jak v takovem pripade pouzivat tyto aliasi abych nemusel psat dalsi select ?
Dekuji
2. 11. 2011 16:43:10
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693881
duben
verified
rating uzivatele
(49 hodnocení)
2. 11. 2011 17:31:20
Je opravdu potřeba používat takhle vnořený select? Nejde to udělat přes nějaký JOIN? Tohle dá DB serveru docela zabrat.
2. 11. 2011 17:31:20
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693880
Kamil Hurajt
verified
rating uzivatele
(8 hodnocení)
2. 11. 2011 17:34:16
Bohuzel ano jde o jednotlive data ktere vypocitavaji procenta ukazka toho selectu :
select pro user_percent je tam proto protoze mi nefunguje ani scitani aliasu.
2. 11. 2011 17:34:16
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693879
duben
verified
rating uzivatele
(49 hodnocení)
2. 11. 2011 17:36:24
První reakce ... tak tohle je opravdu hodně velká prasárna, tebe bych nechtěl mít na psaní SQL ...
dej mi chvilku na druhou reakci, až si tu hrůzu projdu
---------- Příspěvek doplněn 02.11.2011 v 17:40 ----------
Můžeš mi zkusit vysvětlit co to tam vlastně počítáš? A máš představu jak strašně moc nečím takovýmhle zatížíš i v případě že to máš dobře indexované?
Zatím se v tom moc neorientuju, ale pokud používáš count pro určitého Usera podle jeho ID není jednodušší pomocí triggeru mít u usera uloženou předpočítanou hodnotu pro wc_forms_assign a wc_user_mbti?
2. 11. 2011 17:36:24
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693878
Kamil Hurajt
verified
rating uzivatele
(8 hodnocení)
2. 11. 2011 17:40:59
Uvedomuji si ze je to prasarna no premyslel jsem pri psani na hodne moznosti jedina normalni na kterou jsem prisel je tahle, takze proto takova prasarna zatim , nez najdu jina reseni.
---------- Příspěvek doplněn 02.11.2011 v 17:43 ----------
Pro lepsi pochopeni,
v tomto selectu musim dostat z ostatnich tabulek vyhodnoceni a hned vypocitat % shodu danych dat pro mbti a take pro interests tyto data jsou ulozeny v jinnych tabulkach, pak vyhodnoceni celkoveho poctu 3 hodnot takze maximalni pocet je 300 % jedna z hodnot muze mit maximalne 100% coz je celkovy vypocet by mel byt v user_percent ktery by se mel dat pouzit do WHERE klauzuly , no z duvodu ze je to AS to asi nepujde a hledam moznost jak to udelat mimo ty vnorene selecty
2. 11. 2011 17:40:59
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693877
duben
verified
rating uzivatele
(49 hodnocení)
2. 11. 2011 17:44:16
minimálně jeden vnoreny dotaz na address není potřeba to jde řešit přes JOIN
Zbytku ještě stále nerozumím, vysvětlit co vlastně počítáš
---------- Příspěvek doplněn 02.11.2011 v 17:45 ----------
Ideálně popiš výpočetní logiku toho algoritmu, z čeho vycházíš, co k čemu kde sčítáš a proč a co z toho má vylézt
2. 11. 2011 17:44:16
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693876
Když pominu, že model Myer-Briggs je překonaný modelem Big Five, tohle vypadá na chybně navrženou databázi a/nebo postup.
Zkuste si ta data předpočítat při vkládání a změně uživatele.
A hlavně se pořádně zamyslete nad tím, co děláte. Ten dotaz, stejně jako názvy tabulek a sloupců, jsou velmi nesrozumitelné. To poukazuje na to, že tomu, co algoritmizujete, úplně nerozumíte.
2. 11. 2011 17:53:39
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693875
Kamil Hurajt
verified
rating uzivatele
(8 hodnocení)
2. 11. 2011 17:59:48
Tady je vypocet procent pro zajmy tento udaj se musi take zobrazovat ve vypisu takze tady se vypocita zdali uzivatele maji spolecne zajmy v % takze pocet celkovych spolecnych zajmu uzivatele na danem radku s uzivatelem prihlasenym / celkovy pocet zajmu daneho uzivatele na danem radku / 100
tady jde o vypocet testu osobnosti v % muzou to byt hodnoty 0,25,50,75,100% dle jednotlivych pismen PISMENO X znaci ze muze mit jedno i druhe pismeno pismena jsou
ulozena v sloupcich first,second,third,quad dle toho se vypocita shoda v % narp ISXJ bude mit 100% shodu s ISFJ a 75% shodu s BSFJ
tady je taky potreba tento zaznam vypsat.
Zde v tomto selectu se maji vypocitat hodnoty interest_percent+mbti takze shoda v % interest_percent + shoda v % mbti a bude tam jeste jedna shoda v % na kolik % se shoduje tento celek , max % je 300
2. 11. 2011 17:59:48
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693874
duben
verified
rating uzivatele
(49 hodnocení)
2. 11. 2011 18:01:03
Ufff, tak přestože nechápu proč to takhle počítáš a jak, tak pokud bych se držel toho že musíš dělat takhle COUNTy z nějakého důvodu, tak tohle je mnohonásobně míň zatěžující SQL dotaz
Dalo to dost práce takže +bod potěší, případně mi můžeš na www.duben.org poslat jako poděkování něco na paypal ;)
2. 11. 2011 18:01:03
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693873
Kamil Hurajt
verified
rating uzivatele
(8 hodnocení)
2. 11. 2011 18:05:00
Rozumim tomu co chci udelat, nebo co algoritmizuji , tabulky jsou nazyvany dle modelu systemu system je navrzen v MVC struktura velice podobna zendu ,
takze napr
/libary/Wc(WebControl modely spolecne pro modul CMS a taky WEB)/User.php(model obsluhujici INSERT UPDATE a nacteni 1 radku z tabulky) - bude mit tabulku wc_user
a
/libary/Wc/User/List.php(jedna se o nacitani seznamu z tabulky wc_user)
pak
/libary/Wc/User/Assign.php bude mit tabulku wc_user_assign
takze nazvy tabulek jsou delany dle nazvu a cesty k danym kontrolerum.
viz vrch tridy:
2. 11. 2011 18:05:00
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693872
duben
verified
rating uzivatele
(49 hodnocení)
2. 11. 2011 18:06:51
Tak teď jsem si přečetl to co jsi k tomu napsal jak popis algoritmu a souhlasím s Martinem, že na to jdeš nejspíš špatně, na míru shody textových stringů jsou v DB funkce. Porovnat počet záznamů z jedné a druhé tabulky jde taky jinak a hlavně je u nečeho takového otázka proč to cpát všechno do jednoho dotazu. Děláš to pro několik tisíc lidí najednou takže to chceš udělat na 1 dotaz (v tom případě přetížíš tím co máš server, tím co jsem poslal já to nebude tak zlé)
Otázka je co je tvým cílem, porovnat 2 zadané lidi ... pak to jde řešit na 3-4 kroky a nepřetěžovat DB, nebo to chceš tak že zadáš 1 člověka a k němu srovnáváš všechny v DB a chceš vrátit 1 nebo X odpovídajících lidí. Pak se má jít cestou omezování množiny tak, že v prvním kroku omezím výslednou množinu nejvíc vymezující podmínkou a postupně snižuji výsledek (to je algoritmická věc, hlavně takhle nezačni hned psát SQL)
2. 11. 2011 18:06:51
https://webtrh.cz/diskuse/pouzivani-vnorenych-selectu/#reply693871
Pro odpověď se přihlašte.
Přihlásit