mysql - 怎么用thinkphp的查询语言构建这样的select查询?
黄舟
黄舟 2017-04-10 15:44:33
0
4
364

求助如何用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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆 (4)
大家讲道理

$Model = M('A');
$Model->field('a.id,a.name,count(a.id)')->join('LEFT JOINBONA.id =B.cid')->group(a.id)->select();

    大家讲道理

    使用虚拟模型 进行多表查询

      PHPzhong

      //$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

          最新下載
          更多>
          網站特效
          網站源碼
          網站素材
          前端模板
          關於我們 免責聲明 Sitemap
          PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!