1

我有一个非常常见的、普通的 JOIN 查询,在其中我发现自己陷入了困境。

我的 CI 数据库查询如下所示:

    $this->db->select()
    ->from('user_event')
    ->join('game_bridge', 'user_event.gmeID = game_bridge.gmeID')
    ->where('user_event.memID', $memID);

现在直到大约一分钟前我才意识到,两个表都有一个“位置”列,但是两个列都包含我正在寻找的整体查询结果的唯一数据集。有没有办法给一个位置列或另一个别名,以便我可以在不同的属性名称下访问结果对象?

如果是这样,我该如何使用 CI 的 DB 类/助手来做到这一点?

4

2 回答 2

4

如果您想从两个表中获取位置,则必须为其中一个或两个表提供别名保留 user_event 位置,因为它只是为 game_bridge 提供别名,就像 game_bridge.location 作为 game_location

$this->db->select('location,game_bridge.location as game_location')
于 2012-10-11T07:13:34.157 回答
2

您可以在查询中设置别名。

$this->db->select('user_event.location as u_loc, game_bridge.location as g_loc');

但在这种情况下,您必须枚举所有要选择的字段。

于 2012-10-11T07:20:16.203 回答