0

我有两个表,Items 和 Items_People。每个项目都有一个 id 和一个用户 ID(拥有该项目的人)。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 的嵌套选择是否是最快的方法。我应该使用某种加入吗?

4

1 回答 1

0

做一些测试,看看哪个运行得更快。我相信这个查询将从您在问题中陈述的内容开始工作。

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

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

于 2013-04-29T16:14:16.707 回答