我的数据库中有几个表,例如
评论 状态 事件
我正在尝试创建一个SQL查询过程,该过程根据输入的用户ID计算来自这些不同表的数据,然后总结计数以创建唯一值。这是我到目前为止所尝试的,但我遇到了语法问题。我哪里错了?
SELECT COUNT(user_id) AS comments FROM comment
WHERE user_id= userID
UNION ALL
SELECT COUNT(creator_id) AS events FROM event
WHERE creator_id=userID;
答案 0 :(得分:3)
在联合中,字段根据顺序组合。因此,在联合的每个部分给计数字段一个不同的名称不会产生两个字段。它最终成为同一个领域。要区分哪个值来自哪个表,请添加硬编码的字符串文字,如下所示:
SELECT COUNT(user_id) AS rows, 'comment' as tablename FROM comment
WHERE user_id= userID
UNION ALL
SELECT COUNT(creator_id) AS rows, 'event' as tablename FROM event
WHERE creator_id=userID;