2013-04-29 2 views
0

У меня есть две таблицы, предметы и предметы. Каждый элемент имеет идентификатор и идентификатор пользователя (лицо, которому принадлежит данный элемент). Items_People, таблица, показывающая, с кем был добавлен элемент, имеет itemid и userid. Я хочу, чтобы получить список элементов, находящихся в собственности пользователя или предметы, которые были совместно с пользователемкак выбрать принадлежащие предметы или предметы, которые были совместно использованы в доступе 2003

Вот что я до сих пор:

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

Это делает работу, но я не уверен, если вложенный выбор с WHERE IN является самым быстрым способом его выполнения. Должен ли я использовать какое-то соединение?

ответ

0

Проведите некоторое тестирование, чтобы узнать, что работает быстрее для вас. Я считаю, что этот запрос будет работать из того, что вы заявили в вопросе.

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

Очевидно, что сначала запустите этот запрос, чтобы убедиться, что он дает те же результаты. Затем проверьте каждый запрос, чтобы увидеть, заметили ли вы какую-либо разницу в скорости.

Смежные вопросы