3 回答

TA貢獻1942條經(jīng)驗 獲得超3個贊
您需要將子查詢與外部查詢正確關聯(lián)。問題是您對外部和內部使用相同的別名,因此子句中的條件WHERE實際上并沒有過濾任何內容。您應該使用表別名來避免此問題。
forum無論如何,沒有必要在子查詢中使用該表。您可以將其寫為:
SELECT
f.forum_id,
f.message,
(
SELECT COUNT(*)
FROM forumvotes fv
WHERE fv.forum_id = f.forum_id
) AS voteCount
FROM forums f
ORDER BY ??
LIMIT 3
ORDER BY如果您希望結果在連續(xù)執(zhí)行中保持一致,您還需要一個子句。

TA貢獻1776條經(jīng)驗 獲得超12個贊
根據(jù)您的描述,您可能希望在此處執(zhí)行“IN”子查詢。
SELECT COUNT(forumvotes.forum_id) AS voteCount FROM forumvotes WHERE forumvotes.forum_id IN (SELECT forums.forum_id, forums.message FROM forums LIMIT 3)
具體來說,這將只返回前三個論壇行的 id,并將它們與一些論壇信息連接起來

TA貢獻1798條經(jīng)驗 獲得超3個贊
我將論壇表設置為包含每個的JOIN嵌套查詢COUNT, GROUP BYforum_id
SELECT f.forum_id, f.message, a.voteCount
FROM forums f
JOIN (SELECT COUNT(forumvotes.forum_id) AS voteCount, forumvotes.forum_id
FROM forumvotes
GROUP BY forumvotes.forum_id) a ON f.forum_id = a.forum_id
- 3 回答
- 0 關注
- 157 瀏覽
添加回答
舉報