Sql 获取两列之和的行数并对这些行进行分组

Sql 获取两列之和的行数并对这些行进行分组,sql,codeigniter,count,Sql,Codeigniter,Count,抱歉,如果标题有点奇怪。。。但基本上我想做的是。。。我将先做一个示例,然后发布我的代码 表A有以下列 d-id(INT) 内容(文本) 表B有以下列 d-id(INT) dif_内容(文本) 还有一个表c有d-id列 现在我试图从content和dif\u content和SUM这两列中获取行数,同时根据d-id 表格C有主要内容我想要的内容和dif内容的数量如下: 一行(1) 另一排(5) 又是一排(3) 行中的数字是该行的content和dif_content行数 这是我现在掌握

抱歉,如果标题有点奇怪。。。但基本上我想做的是。。。我将先做一个示例,然后发布我的代码

表A有以下列

  • d-id(INT)
  • 内容(文本)
表B有以下列

  • d-id(INT)
  • dif_内容(文本)
还有一个表c
d-id列

现在我试图从
content
dif\u content
SUM
这两列中获取行数,同时根据
d-id

表格C
主要内容
我想要的
内容
dif内容的数量
如下:

  • 一行(1)
  • 另一排(5)
  • 又是一排(3)
行中的数字是该行的
content
dif_content
行数

这是我现在掌握的密码

    $query = $this->db->query(
            'SELECT TableA.d-id , TableB.d-id , count(TableA.content) as num_content , count(TableB.dif_content) AS num_dif_content 
             FROM TableA , TableB
             WHERE TableA.d-id = TableB.d-id
             SUM(num_content + num_dif_content) as content_total'
更详细地说,我使用的是Codeigniter,所以如果您有一种方法可以使用Active Record实现这一点,那就太好了

这是我做过的最复杂的查询。(这几年我一直在编程)


如果你不明白我想做什么,我深表歉意,如果你需要了解更多,请发表评论,我很乐意编辑这篇文章。

嗯,也许我没有清楚地理解你的问题。如果我是对的,这可能是您需要的查询:

SELECT 
    *, count_t1 + count_t2 as count_all
FROM
    (SELECT d_id, COUNT(content) as count_t1 FROM TableA GROUP BY d_id) t1
    LEFT JOIN
    (SELECT d_id, COUNT(dif_content) as count_t2 FROM TableB GROUP BY d_id) t2
    ON t1.d_id = t2.d_id;
您可以使用此选项进行预览