2013-01-19 65 views
0

对不起,如果标题有点奇怪...但基本上我想要做的是...我会先做一个例子然后我会张贴代码我有获取两列总计的行数并将这些行分组

表A具有这些列

  • d-ID(INT)
  • 内容(文本)

表B有这些列

  • d-ID(INT)
  • dif_content(文本)

,并有一个表C具有列d-id

现在我正在努力,而基于该d-id

表C将它们分组,从contentdif_contentSUM这两列得到行数有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' 

,只是为更多的细节,我用笨,所以如果你有办法做到这一点使用活动记录,那将是很好的代码。

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

我很抱歉,如果你不明白我想要做什么,只是评论,如果你需要知道更多,我会愉快地编辑帖子。

回答

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

+0

你是男人!非常感谢! –

相关问题