Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

přiřazení Order BY k jedné tabulce

Roman
verified
rating uzivatele
(55 hodnocení)
3. 1. 2011 21:35:25
Zdravím,
nevěděl jsem jak téma pojmenovat tak jsem to udělal tak :-)
K problému:
mám k vytažení údajů z databáze zapojených více tabulek v jednom dotazu, potřebuji ale pouze k jedné z nich přiřadit ORDER BY RAND() , bohužel nevím jak.
ale pouze třeba pro tabulku 3 chci použít RAND()
Děkuji za každou radu...
3. 1. 2011 21:35:25
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596225
tomik1313
verified
rating uzivatele
(2 hodnocení)
4. 1. 2011 07:49:56
ORDER BY RAND() sa neodporuca pouzivat, pretoze pri vacsich databazach moze to poriadne spomalit (presnejsie by bolo asi pri nie uplne malych) - pozri blog http://www.titov.net/2005/09/21/do-not-use-order-by-rand-or-how-to-get-random-rows-from-table/ Uvedeny blog by mohol byt napomocny aj pri rieseni tvojho problemu (zalezi na tom, ci chces robit inner alebo left joiny tych tabuliek)
4. 1. 2011 07:49:56
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596224
ORDER BY se nepoužívá pro jednu tabulku ale pro celý select. Tzn. pokud tam máš víc tabulek, tak je musíš nějak spojit (join) a výsledek seřadit. Takže na konci selectu prostě budeš mít ORDER BY RAND().
4. 1. 2011 09:06:08
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596223
Roman
verified
rating uzivatele
(55 hodnocení)
4. 1. 2011 17:45:37
Tak jsem prošel nějaké články ohledně JOIN atd. bohužel mi stále není jasné jak to udělat aby se RAND() přiřadilo k jedné tabulce.
Takhle mám udělaný dotaz:
a potřebuji pro T3 ten RAND()
pokud poradíte budu velice rád.
Děkuji
4. 1. 2011 17:45:37
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596222
hm
verified
rating uzivatele
(20 hodnocení)
4. 1. 2011 17:47:57
prosil bych abys uvedl podrobnosti, protoze zadne obecne reseni thoto problemu neexistuje bude tedy potreba se podivat primo na tvuj konkretni priapd (jaka data v tabulce mas, ceho vlastne chces docilit - uvest vcetne prikladu vystupu a dat) pak teprve bude mozne dobrat se nejakeho vysledku
4. 1. 2011 17:47:57
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596221
Roman
verified
rating uzivatele
(55 hodnocení)
4. 1. 2011 18:23:06
Takhle vypadá celý dotaz:
SELECT * FROM skupiny,kapely,videoklipy,alba WHERE skupiny.id = '".$dat2."' && kapely.id = skupiny.id_kapely && kapely.id = videoklipy.id_kapely && kapely.id = alba.id_kapely;
mám stránku, do které vytahuji údaje,
ve "skupiny" je id, id_kapely, popis_skupiny, clenove_skupiny
v "kapely" je id, jmeno
v "videoklipy" je id, nazev, odkaz
v "alba" je id, id_kapely, popis, nazev
a potřebuji aby k tabulce "alba" byla přiřazena hodnota Rand()
Děkuji
4. 1. 2011 18:23:06
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596220
hm
verified
rating uzivatele
(20 hodnocení)
4. 1. 2011 18:54:28
vidim, vyrad z dotazu alba a vytahni rand album ke skupine samostatnym dotazem (klidne subquery do toho selectu), to bude nejjednodussi a ostatne mozna i jedine reseni, ted zrovna me nejak nenapada jine :)
4. 1. 2011 18:54:28
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596219
Roman
verified
rating uzivatele
(55 hodnocení)
4. 1. 2011 21:18:19
tak jsem prošel zase pár článků, vyzkoušel všechno možné a nemožné, ale většinou to hodí chybu databáze...
Asi by to chtěl dát do nějakých zvlášť skupin JOIN atd. ale zatím jsem nepřišel na to jak tohle funguje...
I tak dík za rady...
4. 1. 2011 21:18:19
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596218
Chceš tedy vybrat něco z tabulke skupiny, kapely, videoklipy pro určitou skupinu a ke každému záznamu připojit náhodně vybrané album?
5. 1. 2011 09:12:12
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596217
Roman
verified
rating uzivatele
(55 hodnocení)
5. 1. 2011 15:02:47
Jak jsem již psal nahoře, vybírám data ze všech zmíněných tabulek (skupiny,kapely,videoklipy,alba) ale pouze pro alba potřebuji aby vytažené data byly RAND() tudíž pouze pro tabulku alba potřebuji rand()
Děkuji
5. 1. 2011 15:02:47
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596216
Co znamená aby data pro tabulku byly rand()? Kdyby si sem hodil příklad očekávaného výstupu tak by ti možná už někdo poradil. Pořád přesně nevím co chceš. Výstupem není tabulka ale spojení tabulek, které lze nějak řadit. Tzn. může tam být třeba order by id_skupiny, id_kapely, id_videoklipu, rand(). Nebo jestli chceš každé kapele připojit náhodné album, tak by se to řešilo nějakým vnořeným selectem.
6. 1. 2011 09:03:49
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596215
Roman
verified
rating uzivatele
(55 hodnocení)
6. 1. 2011 14:55:49
Mám strukturu stránky:
kategorie -> písmenkový výběr -> načte se stránka s profilem skupiny, kde je popis (tahaný z tabulky "skupiny"), pod tím je videoklip (tahán z tabulky "videoklipy" - obsahuje id a odkaz) pod tím je výpis diskografie (tahán z tabulky "alba" - id, nazev) a potřebuji aby z toho výpisu (select) co jsem uváděl nahoře přiřadil rand() pouze k rotaci náhodného videoklipu(odkazu) a alba(id)
Když však dám pouze rand() do selectu tak se to vztahuje ke všemu což nechci, bohužel nevím jak vnořit nebo oddělit přiřazení k videoklipy a alba.
Děkuji všem za Váš čas.
6. 1. 2011 14:55:49
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596214
hm
verified
rating uzivatele
(20 hodnocení)
6. 1. 2011 15:19:14
try asi vubec nectes co tu kdo pise, jasne sem ti rekl abys to udelal pres novy dotaz (nebo poddotaz do soucasneho), ze to nelze nacpat do jednoho dotazu a coé ty udelas? ignorujes to¨, reseni uz tady mas napsane dva dny !
6. 1. 2011 15:19:14
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596213
Roman
verified
rating uzivatele
(55 hodnocení)
6. 1. 2011 16:13:07
ale ano čtu, vše jsem zkusil, i přes dotaz vnořený do současného selectu, bohužel se mi stále nedaří pochopit jak spojovat tabulky atd. přes JOIN aj. pokaždé to hodí chybu databáze, četl jsem všechny návody na linuxsoft ale stále jsem to nějak nepochopil... s databází a složitějšími dotazy teprve začínám...
6. 1. 2011 16:13:07
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596212
duben
verified
rating uzivatele
(50 hodnocení)
6. 1. 2011 17:15:57
No vidím, že se ti nedaří nejen prokousat se do SQL, ale i jasně a stručně vysvětlit co vlastně chceš. Udělejme to takhle. Udělej si v excelu, nebo v malovaní příklad tabulek se sloupci a nějakými daty (jako to mám třeba v tomhle článku na začátku http://www.select-sql.com/mysql/how-to-merge-2-tables-into-one-result-in-mysql.html).
To znamená budou tam všechny tabulky a zůzná data pro různé řádky. A pak tam bude tabulka, kde bude to co chceš jako výsledek. Podstatné je aby v těch tabulkách z kterých čteš data byly jako příklad i data, která tam nechceš, nebo která do výsledku nepůjdou. My z toho pohopíme co vlastně chceš udělat a budeme ti moc poradit jak na to.
---------- Příspěvek doplněn 06.01.2011 v 17:24 ----------
Napsal RK;611753
Mám strukturu stránky:
kategorie -> písmenkový výběr -> načte se stránka s profilem skupiny, kde je popis (tahaný z tabulky "skupiny"), pod tím je videoklip (tahán z tabulky "videoklipy" - obsahuje id a odkaz) pod tím je výpis diskografie (tahán z tabulky "alba" - id, nazev) a potřebuji aby z toho výpisu (select) co jsem uváděl nahoře přiřadil rand() pouze k rotaci náhodného videoklipu(odkazu) a alba(id)
Když však dám pouze rand() do selectu tak se to vztahuje ke všemu což nechci, bohužel nevím jak vnořit nebo oddělit přiřazení k videoklipy a alba.
Děkuji všem za Váš čas.
Tohle co chceš rozhodně není na jeden dotaz.
Z logiky věci vyplývá že:
1. Profil skupiny je 1 řádek informací (jedna kapela má jeden profil s informacemi o sobě)
2. Videoklip určitě nebude jen jeden je tam vazba 0:N, protože kapela určitě může mít víc jak 1 videoklip a navíc se může stát že ještě žádný klip nemá, nebo ho nemáš v DB.
3. Diskografie to samé jako videoklip jen s tím rozdílem že tam bude asi relace 1:N protože předpokládejme, že každá skupina má alespoň 1 album. Ale opět jich může mít víc.
4. Proč chceš náhodně 1 videoklip a 1 album? To když někdo bude koukat na profil skupiny uvidí vždy jen jedno náhodně zvolené album a o ostatních se nedozví? Stejně tak s videoklipem? Pokud chceš prostě náhodně vybrat jeden videoklip z X dalších v DB pro tuhle skupinu je lepší udělat na to samostatný dotaz.
Pokud SQL moc nerozumíš nemusíš dávat jako SUB dotaz a spát ho zbytečně do jednoho extra složitého dotazu, prostě udělej víc volání na DB a každé si zpracuj jednotlivě.
6. 1. 2011 17:15:57
https://webtrh.cz/diskuse/prirazeni-order-by-k-jedne-tabulce/#reply596211
Pro odpověď se přihlašte.
Přihlásit