如何选择已在Access 2003中共享的自有项目或项目

时间:2013-04-29 16:04:34

标签: sql ms-access

我有两个表,Items和Items_People。每个项目都有一个id和一个userid(拥有该项目的人)。 Items_People(显示项目与谁共享的表)具有itemid和userid。我想获得用户拥有的项目列表或与该用户共享的项目

这是我到目前为止所拥有的:

SELECT * FROM Items
WHERE id IN (SELECT itemid as id FROM Items_People where userid = 1)
OR userid=1

这确实有效,但我不确定使用WHERE IN的嵌套选择是否是最快的方法。我应该使用某种加入吗?

1 个答案:

答案 0 :(得分:0)

做一些测试,看看哪个运行速度更快。我相信这个查询可以解决你在问题中所说的内容。

SELECT * 
FROM Items
OUTER JOIN Items_People on Items.id = Items_People.itemid AND Items_People.userid = 1
WHERE Items.userid=1

显然,首先运行此查询以确保它为您提供相同的结果。然后测试每个查询,看看你是否发现速度有任何差异。