【发布时间】:2020-03-06 14:08:51
【问题描述】:
我有两张桌子; users 和 texts。
users保存用户信息,如用户名、密码等
texts 保留一些文本和一些附加列,例如added_from、updated_from、deleted_from,因此当用户进行特定操作时,他的用户名会写入相关列的文本记录中(如果我更新我的用户名写入的文本updated_from 列)。
我想根据 added_from、updated_from、deleted_from 列计算所有用户操作,结果必须类似于
Username | Added | Updated | Deleted
========|=======|=========|======
user_1 | 1 | 9 | 0
user_2 | 5 | 9 | 2
我尝试使用的查询是
SELECT t.added_from,
COUNT(t.added_from) AS Added,
COUNT(t.updated_from) AS Updated
FROM users u, texts t
WHERE u.username = t.added_from
GROUP BY u.username ORDER BY u.id ASC
但它仅显示在文本中找到的第一个用户名的结果。 我想打印用户表中的所有用户名,并根据他们的用户名在添加、更新或删除的列中显示的次数来计算他们的所有操作
【问题讨论】:
-
为什么user_1会出现两次?
-
@Strawberry 您的编辑似乎删除了有用的信息(您的链接接受的答案中的第 3 点,“迄今为止的最大努力”)。这是故意的吗?
-
@JobCurtis - 哦,我明白你的意思了。哎呀。固定
-
为什么 user_1 出现两次? >>> 更正
标签: mysql sql join group-by pivot