Stránka 1 z 1

MySQL - "Dodatečný" where

Napsal: 09 úno 2015 16:31
od kuxik009
Zdravím,
mám tabulku, kde mám různá jména a čísla, a potom tabulku, kde mám ta čísla a k nim jméno těch čísel :-) . Potom na jedné stránce vypisuji do tabulky jména těch čísel a potřeboval bych k nim každému vypsat počet jmen z první tabulky. Bylo by hnusný dělat pro každý jméno z druhé tabulky zvláštní dotaz, proto se chci zeptat, zda by to nešlo nějak takto:

Kód: Vybrat vše


$dotaz_kategorie 
= mysql_query("SELECT id, nazev FROM tabulka2 ORDER BY nazev ASC");  //vyberu názvy čísel
$dotaz_nazvy = mysql_query("SELECT id, nazev, cislo FROM tabulka1 ORDER BY nazev ASC");
while ($vysledek_kategorie = mysql_fetch_assoc($dotaz_kategorie))
 {
  echo "<tr>";
  echo "<td>" . $vysledek_kategorie2["nazev"] . "</td><td>" . mysql_query("SELECT COUNT(*) FROM $dotaz_nazvy WHERE cislo='$vysledek_kategorie[\"id\"]'") . "</td>"; 
  echo 
"</tr>";
 }
 


Vím, že ten druhý dotaz nebude fungovat, ale chtěl bych něco podobného, co by šlo jen jedním dotazem. Samozřejmě by to šlo udělat třeba tak:

Kód: Vybrat vše


$kategorie1 
= 0;
$kategorie2 = 0;
...
while ($vysledek_nazvy = mysql_fetch_assoc($dotaz_nazvy))
 {
  switch ($vysledek_nazvy["cislo"])
   {
    case 1: $kategorie1++;
    case 2: $kategorie2++;
    ...
   }
 }
 


Ale chci se zeptat, jestli neexistuje nějaký způsob podobný tomu prvnímu - přijde mi hezčí :-) Děkuji předem!

Re: MySQL - "Dodatečný" where

Napsal: 09 úno 2015 17:14
od omilis
http://www.w3schools.com/sql/sql_join.asp

Zkus nejdříve něco vymyslet sám, když ti to nepůjde, tak napiš.

Re: MySQL - "Dodatečný" where

Napsal: 10 úno 2015 09:35
od lamin_cz
Pokud správně chápu hierarchii Tvých tabulek ...

Kód: Vybrat vše

SELECT `kat`.`id` AS `katId`, `kat`.`nazev` AS `katName`, `name`.`id` AS `nameId`, `name`.`name` AS `nameName`, `name`.`cislo`, count(`name`.`cislo`) AS `pocet` FROM `tabulka1` AS `kat`, `tabulka2` AS `name`WHERE `name`.`cislo`=`kat`.`id` ORDER BY `kat`.`nazev` ASC;

Re: MySQL - "Dodatečný" where  Vyřešeno

Napsal: 10 úno 2015 18:30
od kuxik009
Moc se omlouvám za zbytečné téma, vyřešil jsem to jednoduše těmi poli :oops: