$this->db->select("a.*, SUM(b.amount) as total");
$this->db->join('table2 b', 'a.b_PID = b.PID', 'LEFT');
$this->db->from(table1 a');
$query = $this->db->get();
$result = $query->result();
在我上面的查询中,我将b表上的表连接到表b_PID,但是表a中的所有记录都没有记录在表b中,因此如果我在表b中选择SUM,如上所述,记录没有数据在表b中没有返回。如果表b中没有记录,如何选择总和b.amount和返回金额为0?出于某些原因,我不能使用group_by。
提前谢谢。
答案 0 :(得分:2)
您应该使用 COALESCE
SELECT d.*
, IFNULL(SUM(a.total),0) AS total
FROM ( SELECT * FROM table2 b) d
LEFT JOIN table1 a
a.b_PID = b.PID
答案 1 :(得分:1)
$ this-> db-> select(“a。*,SUM(当b.amount IS NULL,然后1 ELSE o END)为总数”);