我有一个问题,我似乎无法找出正确的搜索方式。 我需要连接两个表才能从一个表中得到两个结果
foreach ($search->filters as $key => $value) {
// Check for column search
if($value->type === 'column'){
$query->where($value->name, 'LIKE', "%{$value->text}%");
}
// Check for concat search
if($value->type === 'concat'){
$query->where(?);
}
}
teams table
id name
------------
1 team A
------------
2 team B
以上结果应为
games table
id home_team away_team
--------------------------
1 1 2
--------------------------
2 2 1
混乱从game_id home_team away_team
-------------------------------
1 team A team B
-------------------------------
2 team B team A
开始,显然没有任何意义。
有人能指出我正确的方向吗?
答案 0 :(得分:4)
您需要两次链接到同一张表并使用别名:
select g.game_id, h.name as home_team, a.name as away_team
from games g
join teams h on h.id = g.home_team
join teams a on a.id = g.away_team
因此,您要链接到teams表,将其别名为主队使用h
,并再次链接到其表名将其别名为a
(对于客队)。