这是我的查询。我需要为每个线程只选择一条不同的记录,但因为我正在返回,所以它不能是唯一的,并且返回两条记录。需要SQL查询帮助吗?
请帮我修改我的查询,使其工作。谢谢
SELECT DISTINCT T2.Name, T0.ThreadID, (CASE WHEN T0.Status = 0 THEN 1 ELSE 0 END) AS Highlight
FROM Messaging T0
INNER JOIN Table1 T1 ON T0.ThreadID = T1.ThreadID
INNER JOIN Table2 T2 ON T0.UserID = T2.UserID
INNER JOIN Table3 T3 ON T3.ID = T0.ID
WHERE T0.UserID != 9149
GROUP BY U.Name, M.ThreadID
ORDER BY Highlight DESC
该查询返回结果就像你可以看到下面
Name ThreadID Highlight
Alex 048C8E05-422C-491A-880C-AE370194AE8C 1
Andrew 048C8E05-422C-491A-880C-AE370194AE8B 0
Alex 048C8E05-422C-491A-880C-AE370194AE8C 0
Table T0
RecordID UserID ThreadID Status
1 9090 048C8E05-422C-491A-880C-AE370194AE8C 0
2 9149 048C8E05-422C-491A-880C-AE370194AE8C 1
3 9090 048C8E05-422C-491A-880C-AE370194AE8C 1
4 5454 048C8E05-422C-491A-880C-AE370194AE8B 0
5 9149 048C8E05-422C-491A-880C-AE370194AE8B 0
创业所以,如果你只想要一个行亚历克斯,高亮值你想'选择哪个'? 0,1?最老的?最新的? – Matthew
是只有一行,如果至少有一个0突出显示为真,如果不突出显示false –
我争辩说,这个问题已经回答了标准SQL。你在哪些数据库中使用发布的答案不起作用?请将您的结果发布在Abe Miessler的答案 – Matthew