Zdravim.
Chtel jsem se zeptat, zdali je V SQL mozne za prikazem ORDER BY uvest dalsi prikaz.
Mam totiz tabulku, kde mam u kazdeho uvedeneho zapasu uveden seznam strelcu. A pozdeji
chci zobrazit tri nejlepsi strelce tudiz bych potreboval napsat neco jako
SELECT DISTINCT hrac_id AS h FROM hraci ORDER BY SUM(goly) FROM zapasy WHERE hrac_id=h
vysvetlivky: tabulky hraci,zapasy
v kazde z nich je sloupec hrac_id
Je to spravne nebo se to musi udelat jinak?
<HTML>Doporučuji nastudovat syntaxi a užití příkazu JOIN, kterým propojíte dvě tabulky proti sobě.</HTML>
mm.gene.cz
- odkaz na mysql manual
zkusil bych JOIN nebo GROUP
Puvodni dotaz jiz mam vyreseny
pomoci SELECT SUM(neco_) AS neco GROUP BY id ORDER BY neco
a je to v pohode.
Ale mam u toho jeste jeden problem.
Chci spojit dve tabulky pres atribut id, obe ho maji a u jedne se jedna o klicovy atribut a u druhe pouze o cast klicoveho atributu a chtel jsem pouzit LEFT JOIN, aby k tabulce nalevo se pripojily zaznamy tabuly na pravo s NULL hodnotami, pokud v ni neni nalezen zaznam s danym id. Ale sql server mi hodi tuto chybu:
1052: Column 'registration_id' in field list is ambiguous40
Nevite nekdo co s tim, mimochodem takto pridane atributy s nulovymi hodnotami (pokud se v tabulce na pravo nenajde zaznam s odpovidajicim id) budou mit hodnoty NULL? nebo pokud u ciselnych atributu mam u create table uvedeno default 0 budou mit potom hodnotu 0 a ne NULL?
Predem dik za radu
asi nevi, z ktere tabulky ma ten sloupec brat. napis tabulka.sloupec
do group dotazu nemuzes davat left join
spojovani pres WHERE tab1.id=tab2.id
Koukal jsi na to mm.gene.cz a do oficialniho manualu nebo ne?