Autor Zpráva
David91
Profil *
Dobrý den, řeším nyní tento dotaz:
$sql_preview_vzajemne = dibi::fetchAll('SELECT * FROM zapasy WHERE domaci_id = '.$row_domaci['id'].' AND hoste_id = '.$row_hoste['id'].' AND kdo_vyhral > 0 ORDER BY datum_zapasu DESC LIMIT 5');
$sql_preview_vzajemne = dibi::fetchAll('SELECT * FROM zapasy WHERE domaci_id = '.$row_hoste['id'].' AND hoste_id = '.$row_domaci['id'].' AND kdo_vyhral > 0 ORDER BY datum_zapasu DESC LIMIT 5');

jedná se o datábázi zápasů, nyní chci vytáhnout data, kdy týmy hráli spolu(vzájemné zápasy), problém je ten, že vždy je domácí tým jiný, mění se... lze tento dotaz nějak spojit?
1 dotaz, určuje že to vyhledá např. tým jako domácí Sparta a porovnává, třeba se Slavii... vyhledá to teda pouze tuto shodu, ale já potřebuji aby to bralo, že Sparta budou jako hosti a Slavie domácí, jeslti chápete, děkuji moc
Keeehi
Profil
'SELECT * FROM zapasy WHERE
    ((domaci_id = '.$row_domaci['id'].' AND hoste_id = '.$row_hoste['id'].') OR (domaci_id = '.$row_hoste['id'].' AND hoste_id = '.$row_domaci['id'].')) AND
    kdo_vyhral > 0
ORDER BY datum_zapasu DESC LIMIT 5'

Pak by ještě šlo:
'SELECT * FROM zapasy WHERE
    domaci_id IN ('.$row_domaci['id'].','.$row_hoste['id'].') AND
    hoste_id IN ('.$row_domaci['id'].','.$row_hoste['id'].') AND
    kdo_vyhral > 0
ORDER BY datum_zapasu DESC LIMIT 5'
Což teoreticky by vybralo i zápasy, kde by tým hrál sám se sebou, ovšem tato možnost předpokládám nastat nemůže, takže je to ok.
David91
Profil *
Keeehi:
Díky moc, funguje parádně.
juriad
Profil
David91:
Lepší by bylo:
'SELECT * FROM zapasy WHERE
    (domaci_id, hoste_id) IN (
        ('.$row_domaci['id'].','.$row_hoste['id'].'),
        ('.$row_hoste['id'].','.$row_domaci['id'].')
    ) AND
    kdo_vyhral > 0
ORDER BY datum_zapasu DESC LIMIT 5'

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