MySQL php: как присоединиться к одной и той же таблице несколько раз? - PullRequest
0 голосов
/ 10 июня 2018
  • Team таблица содержит:

       ID   |   TEAM  
    --------+----------
       1    |     A
       2    |     B
    
  • Result таблица содержит:

      fk_ID1  |   fk_ID2  |  RESULT
    ----------+-----------+-----------
        1     |     2     |   5:0
        2     |     1     |   2:3
    

Как Inner JOIN таблица, чтобы получить: (A 5:0 B) & (A 2:3 B)?

Мой пример кода:

public function getResultList($limit, $offset) {
    $query = "  SELECT result_id,
                       t1.name name1,
                       t2.name name2,
                       team1_goals,
                       team2_goals,
                       date
                FROM results
                    INNER JOIN team t1 ON fk_tm1_id=tm_id
                    INNER JOIN team t2 ON fk_tm2_id=tm_id";
            $data = mysql::select($query);
    return $data;
}

1 Ответ

0 голосов
/ 10 июня 2018

Лучше всего ответить на этот вопрос как на вопрос SQL.Вам необходимо назначить псевдоним таблицы при присоединении к одной и той же таблице два или более раз.

Кажется, вы назначаете псевдоним только для столбца.Чтобы назначить псевдоним столбцу или таблице, вы можете добавить псевдоним непосредственно после имени столбца или таблицы (можно использовать AS, но это не обязательно для MySQL)

Обычная вещь - нумерация таблицкак t1, t2, t3 и т. д.

SELECT t1.name name1, t2.name name2 FROM ...
INNER JOIN team_table t1 ON ...
INNER JOIN team_table t2 ON ...

Это псевдоним первого соединения как t1, а второго соединения как t2, который вы будете использовать при доступе к данным из этого конкретного соединения (SELECT t1.name).

...