Diskuze: Mysql-opakující se údaje
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 18 zpráv z 18.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Něco na způsob tohohle:
SELECT MAX(id) as hodnota FROM tabulka WHERE poznamka = 'G' OR poznamka = 'D'
Trošku zmatený dotaz, řekl bych...
Jestli to dobře chápu, použil bych SQL dotaz s použitím GROUP BY
SELECT * FROM tabulka ORDER BY hodnost DESC GROUP BY něco_id
Myslím si, že výběr dat s poznámkou G a D byl myšlen tak, že mají v tomto případě oba nejvyšší 'hodnost' u každého 'něco_id' a ne, že by chtěl vybírat pouze tyto dva...
Děkuju vyzkouším to. Jinak ta poznámka je jen jako příklad.
Moc díky, ale toto hází syntax error a pokud přesunu ORDER BY za Group BY DESC tak to sice chybu nehází ale ukáže to jen jedno se stejnym id, ale s tou menší hodností a to ať dám desc asc. Nevíš pls co s tim?
Order by se vykoná až po seskupení. Mohlo by to vypadat třeba nějak takhle:
SELECT * FROM tabulka a WHERE hodnost = (SELECT MAX(hodnost) FROM tabulka WHERE neco_id = a.neco_id)
Zkusil bych tam dát uvozovky nebo apostrofy u toho řazení a
groupování...
Jaký datový typy máš v tý tabulce?
Díky moc, ale nešlo by to nějak pomocí toho GROUP BY, protože já sem tuto tabulku tady nahoře dal jen jako příklad. Potřebuji to totiž použít na výsledku, který vzniká pomocí join.
S tima úvozovkama to taky nejde používám tam int.
Kolika dat se ten select týká? Nešlo by to procházet cyklem?
Napadá mě už jenom jedna možnost. Seřadit si výsledek podle hodnosti a
ten pak použít jako data pro dotaz, který je seskupí podle
neco_id
.
SELECT * FROM (SELECT * FROM tabulka ORDER BY hodnost DESC) a GROUP BY a.neco_id
Dík ale toto by se dalo podle mě použít jen v případě že bych to dělal pro jednu tabulku ke které by nebyla žádná připojená.
Ta vnořená query nemusí vybírat data z klasické tabulky. Klidně to může být nějaký spojený výsledek (seřadit ho podle hodnosti už není tak složité). V podstatě by mělo stačit jen obalit tvoji SQL query, která vygeneruje ten výsledek, co jsi ho ukázal nahoře, tím mým dotazem (dát místo vnořeného SELECTu tvůj dotaz). Neznám ale tu vnitřní strukturu ani jak dáváš dohromady tuhle složenou tabulku, takže asi víc neporadím.
Ok díky to mě nenapadlo. Ještě se omlouvám ale nevěděl bys prosim syntaxi toho příkazu?
Potřeboval bych toto aby to fungovalo.
napadlo mě jen toto ale to má chybu v syntaxy.
___________________________________________________________________________
SELECT (SELECT * FROM tblkategorie kat LEFT JOIN tblZANR zanr ON
zanr.ID_KATEGORIE=kat.KATEGORIE_ID WHERE kat.navrh IS NULL ORDER BY
ID_UROVEN ASC)GROUP BY KNIHA_ID
Myslím, že hlavní problém v syntaxi je to SELECT(SELECT...
vnořené selecty by měly být ve tvaru např.:
SELECT něco FROM tabulka WHERE cokoliv NOT IN(SELECT...)
Zobrazeno 18 zpráv z 18.