【发布时间】:2011-07-12 16:09:02
【问题描述】:
我有一个表 (Threads),其中包含一个字段 (id)。我想从Threads 中选择每一行,以及Posts 表中的行数,其中Posts.thread 字段与Threads.id 相同。
这如何在 SQL 中完成?
(类似这样的伪 SQL:SELECT *, COUNT(* FROM Posts WHERE Posts.id=Threads.id) FROM Threads)
【问题讨论】:
我有一个表 (Threads),其中包含一个字段 (id)。我想从Threads 中选择每一行,以及Posts 表中的行数,其中Posts.thread 字段与Threads.id 相同。
这如何在 SQL 中完成?
(类似这样的伪 SQL:SELECT *, COUNT(* FROM Posts WHERE Posts.id=Threads.id) FROM Threads)
【问题讨论】:
当然 - 像这样?
SELECT
t.ThreadID,
(SELECT COUNT(*) FROM dbo.Posts p WHERE p.ThreadID = t.ThreadID)
FROM
dbo.Threads t
【讨论】:
(SELECT COUNT(*) FROM dbo.Posts p WHERE p.ThreadID = t.ThreadID) 列进行排序?
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
【讨论】: