Autor Zpráva
opicak
Profil
Dobrý den,

mám dvě tabulky tymy a zapasy.
tymy
|  id   |   nazev  |
|  int  | varchar  |
zapasy
|  id    |  domaci  |  hoste  |  g1  |  g2  |
|      všechny sloupce jsou typu integer    |

//ve sloupcích domaci a hoste jsou uložena ID z tabulky tymy

Potřeboval bych vypsat zápasy, kde místo domaci a hoste budou názvy týmu z tabulky tymy. Zkoušel jsem hledat zde a na internetu, ale vůbec nevím pod jakým slovem hledat tento problém, ani jsem nevěděl jaký dát název vlákna.

Doufám, že se tu najde někdo, kdo mi pomůže. Možná bude chyba na mé straně, se špatným rozvržením databáze.
Předem díky za odpovědi a rady.

edit:
Zapomněl jsem dodat, že jsem se zamozřejmě pokoušel vytvořit nějaký kód, ale bez úspěchu. S sql moc nepracuji, většinou jen pro vybrání nějaké tabulky.
Proto jsou zkoušel toto udělat v php, ale myslím si, že je lepší to provést v sql, kdyžtak mě opravte, jestli se mýlím.
$dotaz = mysql_query("SELECT id,nazev FROM tymy");            
$tymy = array();
for($i=0;$z=mysql_fetch_array($dotaz);$i++){

    $tymy[$z[0]]=$z[1];
            
}
$dotaz = mysql_query("
    SELECT id_domaci domaci,id_hoste hoste
    FROM zapasy z
");

while($z = mysql_fetch_array($dotaz)){

    echo "{$tymy[$z["domaci"]]} {$tymy[$z["hoste"]]}<br>";
    
}



Zkusil jsem vytvořit tento příkaz:
SELECT z.id id_zapasu,
(SELECT t.nazev FROM tymy t JOIN zapasy z ON z.id_domaci=t.id WHERE z.id=id_zapasu) domaci, 
(SELECT t.nazev FROM tymy t JOIN zapasy z ON z.id_hoste=t.id WHERE z.id=id_zapasu) hoste
FROM zapasy z
Funguje jak má, ale zdá se mi krkolomný, určitě se najde lehčí a hezčí řešení.
pcmanik
Profil
opicak:
SELECT z.id, t1.nazev AS domaci, t2.nazev AS hoste
JOIN tymy t1 ON t1.id = z.domaci
JOIN tymy t2 ON t2.id = z.hoste
FROM zapasy z
opicak
Profil
Díky, SQL tolik neumím, jak jsem psal, jen opravdu ty základy a nenapadlo mě připojit dvakrát stejnou tabulku.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0