MySQL程序(帮助)

时间:2015-01-06 21:46:42

标签: php mysql sql-server stored-procedures

我的数据库中有几个表,例如

评论 状态 事件

我正在尝试创建一个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;

1 个答案:

答案 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;