使用逗号 JOINed 表重构 SQL 以使用 CodeIgniter 的查询生成器方法

问题描述 投票:0回答:2

如何在 Active Record 中编写此 SQL 语句?

$this->db->query('
    SELECT a.slogan, a.brief, u.id, u.name
    FROM example_tbl AS a, users AS u
    WHERE u.user_id = "' . USER_ID . '"
');
php codeigniter join activerecord query-builder
2个回答
1
投票
$this->db->select('a.slogan, a.brief, u.id, u.name')->where('u.user_id', USER_ID)->get('example_tbl AS a, users AS u')->result();

如果您选择的表格字段明确,您可以删除“AS a,u”等快捷方式...


0
投票

更现代的实践建议不要使用隐式联接。 下面将创建一个 JOIN (INNER JOIN) 子句,该子句将两个表的共享

user_id
列值关联起来。

FROM 和 WHERE 子句内置于

get_where()
调用中,该调用也执行查询。

result()
将返回零个或多个对象的数组,其中四列作为键。

return $this->db
    ->select('a.slogan, a.brief, u.id, u.name')
    ->join('users u', 'u.user_id = a.user_id')
    ->get_where('example_tbl a', ['u.user_id' => USER_ID])
    ->result();
© www.soinside.com 2019 - 2024. All rights reserved.