Zadejte hledaný výraz...

Data z více tabulek

Michal Skoula
verified
rating uzivatele
(18 hodnocení)
7. 12. 2012 16:57:33
Zdravím, mám tabulku USER a pak tabulku VOTE. Jeden user může mít více záznamů v tabulce vote. Mám to spojené přes cizí klíče.
Chci sestavit dotaz, který mi vytáhne data jednoho usera a k němu přibalí i záznamy v tabulce vote. Když použiji LEFT JOIN, vrátí mi to více záznamů (tolik kolik odpovídá v tabulce VOTE), ale data o userovi se tam opakují. Nešlo by to jinak?
7. 12. 2012 16:57:33
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839611
Jak jinak? :) Data z tabulky VOTE chces mit zagregovane do jednoho radku? Pokud ne, tak nelze samozrejme jinak, protoze db vzdy vraci tabulku ve tvaru X*Y
7. 12. 2012 17:02:40
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839610
Michal Skoula
verified
rating uzivatele
(18 hodnocení)
7. 12. 2012 17:06:14
Takže mi to třeba vrátí 1000 řádků (pro každý vote jeden) a budou se tam opakovat všude data z USER?
A nebude rychlejší použít dva dotazy? Jeden na usera a jeden na vote?
7. 12. 2012 17:06:14
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839609
Ano, pokud potrebujes informaci o kazdem jednotlivem hlasu, pak se informace z USER bude opakovat pro kazdy radek.
A v tomto pripade jsou efektivnejsi dva samostatne dotazy. I kdyz v zasade zalezi na mnozstvi dat, nelze to generalizovat.
7. 12. 2012 17:11:26
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839608
Michal Skoula
verified
rating uzivatele
(18 hodnocení)
7. 12. 2012 17:11:49
Dobře, díky
7. 12. 2012 17:11:49
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839607
Maximilian
verified
rating uzivatele
13. 2. 2013 04:31:07
Ahoj, nechcem zakladat novu temu, pretoze je podobna a otazka bude na Vas mozno jednoducha:
Mam dva tabulky (users, login_data) a dva dotazy:
SELECT users.id,users.name,users.surname FROM users
SELECT COUNT(*) FROM login_data WHERE login_data.user_id=users.id
ako najlepsie tieto dva selecty spojim do jedneho? vysledok by mal byt zoznam uzivatelov a pocet ich loginov. dakujem
13. 2. 2013 04:31:07
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839606
Ondřej Švec
verified
rating uzivatele
13. 2. 2013 10:20:59
Napsal maxo10;908808
Ahoj, nechcem zakladat novu temu, pretoze je podobna a otazka bude na Vas mozno jednoducha:
Mam dva tabulky (users, login_data) a dva dotazy:
SELECT users.id,users.name,users.surname FROM users
SELECT COUNT(*) FROM login_data WHERE login_data.user_id=users.id
ako najlepsie tieto dva selecty spojim do jedneho? vysledok by mal byt zoznam uzivatelov a pocet ich loginov. dakujem
Jednoduše uděláš sub-query (vložíš druhý dotaz do prvního):
13. 2. 2013 10:20:59
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839605
martinzsa
verified
rating uzivatele
(1 hodnocení)
13. 2. 2013 10:49:40
Napsal maxo10;908808
Ahoj, nechcem zakladat novu temu, pretoze je podobna a otazka bude na Vas mozno jednoducha:
Mam dva tabulky (users, login_data) a dva dotazy:
SELECT users.id,users.name,users.surname FROM users
SELECT COUNT(*) FROM login_data WHERE login_data.user_id=users.id
ako najlepsie tieto dva selecty spojim do jedneho? vysledok by mal byt zoznam uzivatelov a pocet ich loginov. dakujem
13. 2. 2013 10:49:40
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839604
Ondřej Švec
verified
rating uzivatele
13. 2. 2013 12:27:55
Napsal martinzsa;908875
Proč zbytečně Joinovat tabulky a pak Groupovat, když lze udělat sub-query?
13. 2. 2013 12:27:55
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839603
Maximilian
verified
rating uzivatele
19. 2. 2013 04:24:34
dakujem. nevedel som sa dopracovat k spravemu INNER JOINU . nakoniec asi pouzijem SUB -QUERY ale dakujem za aj druhu moznost, tu budem potrebovat v inom pripade.
19. 2. 2013 04:24:34
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839602
qwertr
verified
rating uzivatele
(7 hodnocení)
19. 2. 2013 05:49:14
Napsal ondrej.svec;908929
Proč zbytečně Joinovat tabulky a pak Groupovat, když lze udělat sub-query?
Kôli rýchlosti. Join je vo všeobecnosti rýchlejší než sub-query.
19. 2. 2013 05:49:14
https://webtrh.cz/diskuse/data-z-vice-tabulek#reply839601
Pro odpověď se přihlašte.
Přihlásit