mysql - 怎么用thinkphp的查询语言构建这样的select查询?
table a (分类表)
id name
1 l
2 ll
3 lll
table b (内容表)
id cid xname
1 2 x
2 1 xx
3 2 xxx
4 1 xxxxx
5 1 xxxxxxx
select a.id,a.name,(select count(id) as counts from b where b.cid=a.id) from a
//查询分类下的项目数,没有的显示0,及分类id,名称
return :
id name counts
1 l 3
2 ll 2
3 lll 0
回复内容:
求助如何用thinkphp的查询语言做到下面这样的查询。。
table a (分类表)
id name
1 l
2 ll
3 lll
table b (内容表)
id cid xname
1 2 x
2 1 xx
3 2 xxx
4 1 xxxxx
5 1 xxxxxxx
select a.id,a.name,(select count(id) as counts from b where b.cid=a.id) from a
//查询分类下的项目数,没有的显示0,及分类id,名称
return :
id name counts
1 l 3
2 ll 2
3 lll 0
$Model = M('A');
$Model->field('a.id,a.name,count(a.id)')->join('LEFT JOIN B ON A.id = B.cid')->group(a.id)->select();
使用虚拟模型 进行多表查询
//$table['表'] = 别名
$table['a'] = a;//a表
$thble['b'] = b;//b表
$this->Table($table)->Where('b.cid = a.id')->getfield('a.id,a.name,count(b.id) as counts');
SELECT a.id, a.name, COUNT(b.id) AS row_number FROM a LEFT JOIN b ON a.id = b.cid GROUP BY a.id;
重点在:GROUP BY a.id
推荐阅读
-
mysql - 怎么用thinkphp的查询语言构建这样的select查询?
-
怎么用java语言查询读出一个SQLite数据库文件中的数据?
-
详解用SELECT命令在MySQL执行查询操作的教程_MySQL
-
详解用SELECT命令在MySQL执行查询操作的教程_MySQL
-
mysql 用like模糊查询 怎么查包含了%号的字符串
-
thinkphp循环查询A表的数据,怎么用A表的ID查询出B表的数据,怎么把B表的数据加入循环并且view展示出来
-
select-mysql 查询语法有单引号,但是我的where条件也有单引号,怎么解?
-
select-mysql 查询语法有单引号,但是我的where条件也有单引号,怎么解?
-
mysql 用like模糊查询 怎么查包含了%号的字符串
-
怎么用java语言查询读出一个SQLite数据库文件中的数据?