Varray сравнить товар в коллекциях - PullRequest
0 голосов
/ 25 сентября 2018

Стол фильмов с атрибутом режиссеров и актеров.Актер типа varray типа actor_type содержит 5 актеров.Я хочу получить фильм, в котором актер является и режиссером, и актером.

я пытался

select actors, title, director
from movie
where actors = director 

это говорит мне о непоследовательном типе данных

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вы не предоставили пример данных, поэтому мое понимание из вашего описания таково:

Атрибут режиссера и актера находится в таблице фильмов, и актер отображается как Varray, который называется actor_type.Также актер Варрей содержит 5 актеров в каждом фильме.

Способ запроса Varray другой, вы можете использовать выражение TABLE в предложении FROM.

Этот веб-сайт может помочь вам

Руководство разработчика реляционных объектов базы данных: https://docs.oracle.com/database/121/ADOBJ/adobjcol.htm#ADOBJ00204

Затем вам нужно пройтись по списку акторов и использовать оператор EXISTS или INпроверить, находится ли директор в списке актеров, вместо того, чтобы использовать актеры = директор

0 голосов
/ 25 сентября 2018

Вы не указали тип данных столбца директора.Вы можете сделать конвертацию в соединении actor = convert (Director).Но я настоятельно рекомендую вам не делать этого.

Проблема с соединением строк очень непоследовательна, и если это единственный вариант присоединить актера к директору, вам необходимо реструктурировать свои таблицы.

Я советую вам иметь таблицу Person, которая содержит как актеров, так и режиссеров.Затем вам понадобится стол для фильмов, а в роли внешних ключей - режиссер и актер.

Если в фильме может быть более одного актера, например, вам понадобится таблица связей между таблицами персонажа и фильма (То же самое с режиссером, если у вас более одного режиссера)

Надеюсьэто помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...