【发布时间】:2012-10-31 01:06:02
【问题描述】:
我想知道执行 SQL 查询的最佳方式。 我有一个表,其中包含与文章相关的主题(每篇文章至少包含 2 个主题)。 用户正在搜索两个 SUBJECTS,我需要回复所有文章。
我有一个如下所示的表格:
SubjectID ---> 键
文章ID
我的查询如下:
SELECT ArticleID
FROM tblSubjectsInArticles
WHERE SubjectID = @pSubjectID1
AND ArticleID IN (SELECT ArticleID FROM tblSubjectsInArticles WHERE SubjectID = @pSubjectID2);
我感觉有更好的方法来执行这项任务,可能是高效的查询或不同的数据结构。也许你们中的一个人知道更好的方法,或者您可以放心,这是最好的方法。谢谢。
【问题讨论】:
-
哪个 DBMS?甲骨文? PostgreSQL?
-
在 SQL Server 中,您问题中的查询可能比您接受的答案中的查询更有效。此外,该答案中的一个具有不同的语义,因为它可以带回您需要使用
DISTINCT删除的重复项
标签: sql sql-server in-clause