【发布时间】:2014-01-26 00:03:31
【问题描述】:
我确定之前有人问过这个问题,但我无法让我的代码工作:(
用户提出了多个问题。我需要显示用户进行某种用户搜索,然后显示每个用户问了多少问题。
表 1(用户): ID, 用户名, 密码, 头像, 注册日期, is_banned (ETC...)
表 2(问题): ID, questioner_id, 问题, 回答1, 回答2, 答案 3(等...)
我需要将两者合并,然后显示用户名等普通用户信息,但还要计算 questioner_id 行并显示用户提出了多少问题。
这是我到目前为止所拥有的,但它只是吐出一个结果并计算所有内容:
SELECT
users.id,
users.username,
users.avatar_location,
users.datetime,
users.last_action,
users.last_action_description,
users.is_banned,
COUNT(questions.questioner_id)
FROM
`users`
LEFT JOIN
`questions`
ON
users.id = questions.questioner_id
ORDER BY
datetime
ASC
我很抱歉我完全“笨拙”。我已经找了一两个小时来了解如何做到这一点,但我无法解决它。
非常感谢
编辑:
非常感谢您的帮助!我最后的附加问题是我现在还有三分之一的桌子,这次我想计算回答的问题,因为我已经提出了问题。
表 3(questions_answered): ID, question_id, 用户身份, 正确(ETC...)
我已尝试将其添加到我的查询中,但不是显示回答的问题数,而是重复提出问题的结果。
这是我更新后的查询(再次抱歉,我只是在努力解决这个问题)
SELECT
users.id,
users.username,
users.avatar_location,
users.datetime,
users.last_action,
users.last_action_description,
users.is_banned,
COUNT(questions_answered.question_id),
COUNT(questions.questioner_id)
FROM
`users`
LEFT JOIN
`questions`
ON
users.id = questions.questioner_id
LEFT JOIN
`questions_answered`
ON
users.id = questions_answered.user_id
GROUP BY
users.id,
users.username,
users.avatar_location,
users.datetime,
users.last_action,
users.last_action_description,
users.is_banned
ORDER BY
datetime
ASC
非常感谢您的帮助!
【问题讨论】:
-
首先,为什么要
COUNT(questions.questioner_id)?这不可能是正确的!