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;
}
答案 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)中的数据时将使用该连接。