Vnořený dotaz – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vnořený dotaz – MySQL – Fórum – Programujte.comVnořený dotaz – MySQL – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
RePRO0
Super člen
1. 11. 2011   #1
-
0
-

Zdravím,

mám tuto tabulku:

turnajvysledek

[ ID ] .... [ ID hráče ] .... [ Umístění ]

1                     2                1

2                     3                1

3                     2                1

4                     1                5

A já potřebuji dotaz: hráče s největším počtem vítězství (umístění = 1) ze všech hráčů, kteří jsou v tabulce. Takže pak budu potřebovat, aby mi to zobrazilo toto:

[ ID hráč ] .... [ Počet prvních míst ]

1                             0

2                             2

3                             1

A budu z toho chtít ještě vzít jednoho hráče... Takže to bych ošetřil tím LIMIT 1. Můžete poradit? Nastíním sem dotaz, co jsem spáchal... ale prostě něco je špatně.

SELECT DISTINCT b.hrac_idhrac,
                        (SELECT COUNT(a.umisteni) AS pocet
                         FROM turnajvysledek a
                         WHERE a.hrac_idhrac = b.hrac_idhrac
                         AND a.umisteni = '1')
FROM turnajvysledek b ORDER by pocet DESC LIMIT 1
Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
Reklama
Reklama
Řešení
RePRO0
Super člen
1. 11. 2011   #2
-
0
-
Vyřešeno Nejlepší odpověď

   

SELECT hrac_idhrac
FROM (
	SELECT hrac_idhrac, COUNT(*) AS pocet
	FROM turnajvysledek
	WHERE umisteni = 1
	GROUP BY hrac_idhrac
) s
ORDER BY pocet DESC
LIMIT 1
Nahlásit jako SPAM
IP: 95.82.185.–
Software: C; C++; C#; Pascal; Delphi; Java Webdesign: PHP; MySQL; CSS; jQuery; Ajax; Javascript; OOP
liborb
~ Redaktor
+18
Guru
2. 11. 2011   #3
-
0
-

Podle mě to ani nemusíš řešit vnořeným dotazem:

SELECT hrac_idhrac, COUNT(*) AS pocet
FROM turnajvysledek
WHERE umisteni = 1
GROUP BY hrac_idhrac
ORDER BY pocet DESC
LIMIT 1
Nahlásit jako SPAM
IP: 78.80.52.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Vnořený cyklus — založil Felix

Vnorený cyklus for — založil wicked

"Mysql dotaz v dotaz" — založil Tomáš Sedlmajer

Dotaz — založil anonymouse

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý