我有3个表来从单个Select语句中检索
中的值 DISCUSSION
,USER_INFO
& DISCUSSION_COMMENT.
在DISCUSSION_COMMENT
中,我有一个USER_ID
列,我需要计算不同的条目。
这里我用了
SELECT COUNT(DISTINCT USER_ID) FROM DISCUSSION_COMMENT
并且工作正常。
但我需要制作一个select语句来从
获取所有行值 DISCUSSION
,USER_INFO
并使用DIS_ID
中的值DISCUSSION
来查找总计数
来自DISCUSSION_COMMENT
表格
SELECT COUNT(DISTINCT USER_ID)
FROM DISCUSSION_COMMENT
WHERE DISCUSSION_COMMENT.DIS_ID=DISCUSSION.DIS_ID
其中DIS_ID是我在DISCUSSION_COMMENT中的外键。
答案 0 :(得分:0)
你的问题不清楚。 似乎就像你需要加入一样:
SELECT COUNT(DISTINCT SCHEMA.USER_ID)
FROM DISCUSSION_COMMENT
JOIN DISCUSSION ON DISCUSSION_COMMENT.DIS_ID=DISCUSSION.DIS_ID
在英语中,这将计算评论讨论的不同用户的数量。
如果您在外键列上具有参照完整性,则只需检查DIS_ID是否为空:
SELECT COUNT(DISTINCT SCHEMA.USER_ID)
FROM DISCUSSION_COMMENT
WHERE DIS_ID IS NOT NULL
答案 1 :(得分:0)
我同意@Bohemian,我也建议你不要在MySQL查询中使用COUNT(),如果行数很大这会给服务器造成压力,你可以用native count()函数得到总结果PHP或编程语言中的同等编码。
答案 2 :(得分:0)
这是MySQL问题还是DB2问题?两者都被标记。
对于DB2,我建议使用聚合查询:
SELECT COUNT(dc.user_id), dc.dis_id
FROM discussion_comment dc, discussion d
GROUP BY dc.dis_id
HAVING dc.dis_id = d.dis_id