【发布时间】:2016-08-02 11:54:11
【问题描述】:
我在 MySql 7.5 中使用 Codeigniter。我有一个查询,当左连接表为空时它总是返回空。
$this->db->select('shop.id as shop_id, shop.shop_name, rg.rating');
$this->db->from('shop');
$this->db->join('booking as bh', 'bh.shop_id = shop.id', 'left');
$this->db->join('rating rg', 'rg.booking_id = bh.id', 'left');
$this->db->group_by("bh.id");
$this->db->order_by("bh.id", "desc");
在这里,我在预订表和商店表中有条目,但评级表为空。但我没有得到任何结果。
如果我从选择中删除rg.rating,它将返回正确的结果。
我错过了什么吗?谢谢
【问题讨论】:
-
我不知道 CodeIgniter,但从您的查询来看,我认为您使用
group by的方式似乎是错误的 -
谢谢,但即使我删除 group_by 也没有得到结果
-
我怀疑是您的 group by 导致了空结果集。您正在对可能不存在的结果进行分组。您也没有在 select 语句中包括按列分组。我的建议是打开 Profiler 并查看实际查询的样子。
-
@RaGu 这个字段是否正确
'rg.booking_id = bh.id'??bh.id -
您将 group_by 与左连接表一起使用,因此您没有得到任何结果
标签: php mysql codeigniter