我敢肯定,這以前有人問,但我不能讓我的代碼工作:(SQL合併使用COUNT(),並留下了兩個或三個表JOIN
但是也有一些用戶提出多個問題我需要爲還挺用戶搜索顯示的用戶,然後顯示多少問題每個用戶都要求
表1(用戶): ID, 用戶名, 密碼, 頭像, reg_date, is_banned( ETC ...)
表2(問題): ID, questioner_id, 問題, 答案1, 答案2, 答案3(ETC ...)
我需要合併兩個,然後顯示像普通用戶信息用戶名等,但也計算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
我很抱歉提前爲我徹底的「noobiness」。我已經找了一兩個小時瞭解如何做到這一點,但我一直無法解決它。
非常感謝
編輯:
非常感謝您的幫助!我最後的附加問題是我現在有另外一個第三個表格,這次我想要回答現在有問題的問題。
表3(questions_answered): ID, question_id, USER_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)'?它不可能是正確的! – Mehdi