SQL PHP выберите столбцы с несколькими условиями в одном запросе

Я не могу понять, как сделать выбор матчей между 2 командами, даже если находится дома или в гостях.

Образец:

У меня есть этот стол:

MatchID  |  status |  date   |   short (home) |  opponent (Away)
1           ENDED      XXX       TEAM A          TEAM B
2           ENDED      XXX       TEAM B          TEAM A
3           ENDED      XXX       TEAM C          TEAM B
4           ENDED      XXX       TEAM D          TEAM A

У меня есть много матчей, и я хочу сделать модуль, где я могу показать все предыдущие матчи между командой A и командой B. (даже если находится дома или в гостях).

Прямо сейчас это мой код, но показывает только 1 матч из 2 возможных матчей.

$ergebnis = safe_query("SELECT * FROM table WHERE status='ENDED' AND ((opponent = '".$opp_match."' AND short = '".$short_match."') OR (opponent = '".$short_match."' AND short = '".$opp_match."')) ORDER BY date LIMIT 0,5"); 

И я хочу ограничить 0,5. Просто хочу последние 5 матчей между 2 командами.

«opp_match» и «short_match» являются соединениями с другим модулем. When i’M check the match I can check home team and away team with those.

С ограничениями или без них я не могу показать больше одного результата.

Я просто хочу показать matchID 1 и 2. Но сейчас я просто получаю matchID 1.

EDIT: я попробовал другой способ, но я загружаю все завершенные матчи.

   $ergebnis = safe_query("SELECT * FROM ".PREFIX."upcoming WHERE status='ENDED'"); 
   $i=1;
   while($ds=mysql_fetch_array($ergebnis)) {

   if($ds['short']==$short_match AND $ds['opponent']==$opp_match) {
            eval ("$matches = "".gettemplate("matches")."";");
            echo $matches;
    }
    elseif($ds['opponent']==$short_match AND $ds['short']==$opp_match) {
        eval ("$matches = "".gettemplate("matches")."";");
        echo $matches;
    }
    else echo ''; 

$я++;
}

1 ответ

  1. Будет ли это работать?

    SELECT *
    FROM table
    WHERE status = "ENDED"
    AND 
    (
        (opponent = "team1" AND short = "team2")
        OR
        (opponent = "team2" AND short = "team1")
    )
    ORDER BY MatchID DESC
    LIMIT 5;
    

    Это предполагает, что если один матч имеет меньший идентификатор, чем другой, он был сыгран раньше другого.