我正在开发一个 codeigniter 项目。
这是我的表格
category
cid cname
5 general
6 science
7 math
books
bid bname
12 first
13 second
14 third
15 fourth
16 fifth
17 sixth
dir
id bid cid
1 12 5
2 13 6
3 14 7
4 15 6
5 16 5
6 17 5
如您所见,加入表格很容易,但这是我需要做的。
创建一个函数,为我提供类别名称(cname)和该类别中的书籍数量。例如结果应该是这样的
general 3
science 2
math 1
这是我的 WIP 模型
function category_details(){
$this->db->order_by('cname','asc');
$query=$this->db->query('Select * from dir join category on category.cid=dir.cid join books on dir.bid=books.bid');
return $query->result_array();
}
任何帮助将不胜感激。
最佳答案
查询应该像这样才能得到预期的结果
Select category.cname,count(dir.cid) from dir join category on category.cid=dir.cid join books on dir.bid=books.bid group by category.cname
你的函数应该是这样的
function category_details(){
$this->db->order_by('cname','asc');
$query=$this->db->query('Select category.cname,count(dir.cid) from dir join category on category.cid=dir.cid join books on dir.bid=books.bid group by category.cname');
return $query->result_array();
}
您可以引用此代码COUNT / GROUP BY with active record?用于正确的 CI 查询。
关于php - MySQL 查询从连接表中选择依赖行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43534035/