很抱歉,如果标题有点奇怪......但基本上我想要做的是......我先做一个例子然后我会发布我的代码
TableA 有这些列
TableB 有这些列
并且 TableC 包含d-id
列。
现在,我正在尝试从content
和dif_content
以及SUM
这两列中获取行数,同时根据d-id
TableC 有main_content
我希望content
和dif_content
的数量是这样的:
行中的数字是该行的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这样做,那就太好了。
这是我做过的最复杂的查询。 (我编程的几年)
如果您无法理解我想要做什么,我会道歉,如果您需要了解更多信息,请发表评论,我很乐意编辑帖子。
答案 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
进行预览