Sql 获取两列之和的行数并对这些行进行分组
抱歉,如果标题有点奇怪。。。但基本上我想做的是。。。我将先做一个示例,然后发布我的代码 表A有以下列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行数 这是我现在掌握
- d-id(INT)
- 内容(文本)
- d-id(INT)
- dif_内容(文本)
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;
您可以使用此选项进行预览