SELECT TOP 4000 Users.Id
FROM Users
JOIN Streams ON Users.Id = Streams.UserId
JOIN Playlists ON Streams.Id = Playlists.StreamId
WHERE Playlists.FirstItemId = '00000000-0000-0000-0000-000000000000'
// Doesn't work
HAVING COUNT(1) = (
SELECT COUNT(Playlists.Id)
FROM Playlists WHERE Playlists.StreamId = Streams.Id
)我正在尝试选择那些只有1个播放列表的流,并且其1个播放列表的FirstItemId为Guid.Empty的所有用户。我正在尝试做一些数据库维护和删除创建但从未使用过的帐户。
我已经让查询的第一部分工作得很好了,但是我不确定如何正确地应用我的“只有一个孩子”过滤器。
发布于 2013-07-23 08:29:46
下面的查询应该能满足您的要求。
SELECT TOP 4000 Users.Id
FROM Users
JOIN Streams ON Users.Id = Streams.UserId
JOIN Playlists ON Streams.Id = Playlists.StreamId
WHERE Playlists.FirstItemId = '00000000-0000-0000-0000-000000000000'
AND Playlists.StreamId IN (
SELECT Playlists.StreamId
FROM Playlists
GROUP BY Playlists.StreamId
HAVING COUNT(*) = 1
)https://stackoverflow.com/questions/17799501
复制相似问题