codeigniter activerecords left join不按预期行事

时间:2013-05-04 01:14:06

标签: php codeigniter activerecord

我有两个看起来像这样的表:

Table_one


P_id     Value
1001     50
1002     54
1003     47
1004     65
1005     51

Table_two

S_id     Rating     t_id
1001     1          1
1002     3          1
1001     5          2
1004     1          2
1005     2          2

我正在尝试使用codeigniter的活动记录类加入这两个表。这是我的代码:

$tId = 1;
$this->db->select('Table_one.Value, Table_two.Rating');
$this->db->from('Table_one');
$this->db->join('Table_two', 'Table_one.P_id = Table_two.S_id', 'left');
$this->db->where('Table_two.t_id', $tId);
$query = $this->db->get();

我希望这个查询能够从表1中提供来自" Rating"的值的所有5行数据。表2的列附加到前两行。相反,我只从前两行获取数据。如何重写代码,继续使用活动记录类,以获得我期望的结果?

3 个答案:

答案 0 :(得分:0)

你的$tid似乎是1在where子句中。这将仅导致检索前两行的值。

答案 1 :(得分:0)

如果你想获得所有5行,你需要摆脱where子句,因为Table_two中只有两行有t_id = 1,这就是你得到的。

答案 2 :(得分:0)

通过查看代码,它必须返回2行...如果要检索5行,则删除where子句。