Php 不存在左联接列时如何选择和
在上面的查询中,我将表b连接到b_PID上的表,但是表a中的所有记录并非都有表b中的记录,因此,如果我如上所述选择表b中的金额总和,则不会返回表b中没有数据的记录thas。如果表b中没有记录,如何选择“合计b.amount”和“返回金额”为0?由于某些原因,我无法使用group_byPhp 不存在左联接列时如何选择和,php,mysql,codeigniter,Php,Mysql,Codeigniter,在上面的查询中,我将表b连接到b_PID上的表,但是表a中的所有记录并非都有表b中的记录,因此,如果我如上所述选择表b中的金额总和,则不会返回表b中没有数据的记录thas。如果表b中没有记录,如何选择“合计b.amount”和“返回金额”为0?由于某些原因,我无法使用group_by 提前谢谢。您应该使用合并 $this->db->select("a.*, SUM(b.amount) as total"); $this->db->join('table2 b', 'a.b
提前谢谢。您应该使用合并
$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();
$this->db->选择(“a.*,SUM(如果b.amount为空,则为1,否则为结束)作为总计”) 是的,我尝试过使用coalesce,但它仍然没有返回表BYU中没有数据的行。您似乎缺少GROUP BY子句。我在问题中明确指出,我不能使用GROUP_byI。我建议您解决这些“原因”,或者在应用程序代码中处理算术运算。
SELECT d.*
, IFNULL(SUM(a.total),0) AS total
FROM ( SELECT * FROM table2 b) d
LEFT JOIN table1 a
a.b_PID = b.PID