【发布时间】:2012-03-29 22:00:43
【问题描述】:
我正在尝试测试这个问题的第一个答案:
SQL - message schema - need to find an existing message thread given a set of users
这个问题的第一个答案是用 DB2 编写的,我很难将答案转换为 TSQL。有人可以帮我解决这个问题吗?这是查询:
WITH Selected_Users(id) as (VALUES (@id1), (@id2), --etc--),
Threads(id) as (SELECT DISTINCT threadFk
FROM ThreadMembers as a
JOIN Selected_Users as b
ON b.id = a.userFk)
SELECT a.id
FROM Threads as a
WHERE NOT EXISTS (SELECT '1'
FROM ThreadMembers as b
LEFT JOIN Selected_Users as c
ON c.id = b.userFk
WHERE c.id IS NULL
AND b.threadFk = a.id)
AND NOT EXISTS (SELECT '1'
FROM Selected_Users as b
LEFT JOIN ThreadMembers as c
ON c.userFk = b.id
AND c.threadFk = a.id
WHERE c.userFk IS NULL)
查询的描述是答案的一部分,这很有帮助。查询的第一部分创建了一个名为 Selected_Users 的临时表,但我不确定这将如何完成。提前致谢!
【问题讨论】:
-
我用 TSQL 版本更新了原始问题。谢谢!