0

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

TableA有这些列

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

TableB有这些列

  • d-id (INT)
  • 差异内容(文本)

并且有一个TableC有 column d-id

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

TableCmain_content我想要的数量,content就像dif_content这样:

  • 一行(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 来做到这一点,那就太好了。

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

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

4

1 回答 1

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 链接进行预览

于 2013-01-19T14:25:23.243 回答