Mysql php:如何连续多次加入同一个表?

时间:2018-06-10 16:26:57

标签: php mysql join inner-join

  • 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 :(得分:1)

最好回答这纯粹是一个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)中的数据时将使用该连接。