首页 > 解决方案 > Mysql php:如何多次加入同一张表?

问题描述

如何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;
}

标签: phpmysqljoininner-join

解决方案


最好将其作为纯粹的 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) 访问数据时使用它们。


推荐阅读