我有一個表(Threads
)包含一個字段(id
)。我想選擇Threads
中的每一行,以及表Posts
中的行數,其中字段Posts.thread
與Threads.id
相同。T-SQL從不同的表中選擇並計數?
這怎麼能在SQL中完成?
(事情是這樣的僞SQL:SELECT *, COUNT(* FROM Posts WHERE Posts.id=Threads.id) FROM Threads
)
我有一個表(Threads
)包含一個字段(id
)。我想選擇Threads
中的每一行,以及表Posts
中的行數,其中字段Posts.thread
與Threads.id
相同。T-SQL從不同的表中選擇並計數?
這怎麼能在SQL中完成?
(事情是這樣的僞SQL:SELECT *, COUNT(* FROM Posts WHERE Posts.id=Threads.id) FROM Threads
)
SELECT t.id, COUNT(p.thread)
FROM Threads AS t
LEFT OUTER JOIN Posts AS p
ON t.id = p.thread
GROUP BY t.id
當然 - 這樣的事情?
SELECT
t.ThreadID,
(SELECT COUNT(*) FROM dbo.Posts p WHERE p.ThreadID = t.ThreadID)
FROM
dbo.Threads t
打開帖子,這是我剛纔給的確切答案。 – Treborbob
你應該使用左連接,否則你不會獲得每一行 –
@ t-clausen,是的,我同意。 –