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

时间:2013-01-19 12:57:34

标签: sql codeigniter count

很抱歉,如果标题有点奇怪......但基本上我想要做的是......我先做一个例子然后我会发布我的代码

TableA 有这些列

  • d-id(INT)
  • content(TEXT)

TableB 有这些列

  • d-id(INT)
  • dif_content(TEXT)

并且 TableC 包含d-id列。

现在,我正在尝试从contentdif_content以及SUM这两列中获取行数,同时根据d-id

对它们进行分组

TableC main_content我希望contentdif_content的数量是这样的:

  • 一排(1)
  • 另一行(5)
  • 又一行(3)

行中的数字是该行的contentdif_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这样做,那就太好了。

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

如果您无法理解我想要做什么,我会道歉,如果您需要了解更多信息,请发表评论,我很乐意编辑帖子。

1 个答案:

答案 0 :(得分:0)

嗯,也许我不明白你的问题。如果我是对的,这可以是您需要的查询:

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;

您可以使用此sqlfiddle link

进行预览