因此,我正在try 使用SEDE从令人困惑的Stack Exchange中获取包含两个单独标签(但不一定都有)的问题表,以找到我可能能够解决的谜题.在我设法修复了前面的代码之后,我能够包括我试图将问题列表限制到的另一个标记.
然而,我很难编写代码,这样我就可以检索所有只有一个或两个标签的问题.相反,我只能检索两者都有的问题.
Here是我设法想出的代码(在阅读了更多教程之后):
SELECT p.Title, p.Id, p.Score, p.ViewCount, u.DisplayName, p.Tags
FROM Posts p
JOIN Users u ON p.OwnerUserId = u.Id
INNER JOIN PostTags pt ON p.Id=p.PostId
INNER JOIN Tags t ON t.id = pt.TagId
INNER JOIN PostTags pt1 ON p.Id=pt1.PostId
INNER JOIN Tags t1 ON t1.Id = pt1.TagId
WHERE p.PostId=1
AND (t.TagName=##tagName:string?logical-deduction##)
AND (t1.TagName=##tagName:string?grid-deduction##)
AND p.Score <=10
AND p.Score >=0
AND p.AcceptedAnswerId is null
ORDER BY p.Score DESC
它似乎只返回包含两个标记(以及它们拥有的任何其他标记)的问题,同时也遵守其他限制.
我的问题是:为什么它只返回两个标记都有的问题,以及如何才能使查询也返回只有以下一个标记的问题?