php:如何多次连接同一个表?

ma8fv8wu  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(336)

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

vecaoik1

vecaoik11#

最好把这个问题作为一个纯粹的sql问题来回答,事实确实如此。当两次或多次连接同一个表时,需要指定一个表别名。
您似乎只为列指定了别名。要为列或表分配别名,可以直接在列或表名称后面添加别名(这也可以使用,但对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,您可以在从该特定连接访问数据时使用它(选择t1.name)。

相关问题