2015-10-02 5 views
0

База данных Oracle XE.Выберите запрос из трех таблиц SQL

Позвольте мне объяснить, сценарий первого,

Две таблицы Movie и UserInfo находятся в отношениях многие ко многим, используя таблицу Rating спая.

Rating (MovieID (ФК), UserName (ФК), Rating)

MovieID и UserName оба соответственно первичные ключи в таблицах авторитетными.

Что я пытаюсь сделать, это сделать оператор select, чтобы выбрать MovieNames из таблицы Movie, где UserName не равно указанному входу. Поскольку MoveID был FK, но мне нужно получить MovieName, если фильм еще не был оценен пользователем GIVEN, поэтому, я думаю, мне может понадобиться сделать довольно сложную операцию присоединения, которую я не могу понять или, возможно, присоединиться два или более разных запроса, используя где.

Заранее благодарим вас, и, если возможно, дайте пояснения по поводу решения.

+1

Вы можете разместить SQL вы пробовали? – sstan

+0

И дайте нам создать инструкции таблицы и образцы данных и ожидаемого результата. (sqlfiddle возможно?) – jarlh

+0

Фактически я пробовал метод разных типов. в любом случае ответ выбран. –

ответ

0

Это похоже на классический USECASE для оператора not exists:

SELECT * 
FROM movie m 
WHERE NOT EXISTS (SELECT * 
        FROM rating r 
        WHERE r.movideid = m.moveid AND 
          r.username = 'given username here') 
+0

его работа. Благодарю . –