2015-03-12 4 views
-2

я в настоящее время есть несколько таблиц, которые выглядят следующим образом:Можно ли объединить эти таблицы в виде и комбинированных столбцов?

create table Actors 
(ActorID varchar (20) primary key not null, 
FirstName varchar (35) null, 
LastName varchar(35) null, 
"Address" varchar (30) null, 
Country varchar (30) null, 
"State/Province" varchar (30) null, 
PhoneNumber varchar (15) null 
); 

идут

insert into Actors 
    values ('A-63','Tom','Hanks','4332 Whalibee Way','US','Washington','555-619-9905') , 
    ('A-42','Sandra','Bullock','63 Sharridon Ave.','US','Texas','329-556-3030'); 
go 

create table Director 
    ( DirectorID varchar (20) primary key not null, 
    FirstName varchar (40) null, 
    LastName varchar(40) null, 
    MovieID varchar(20) foreign key references Movies (MovieID) null, 
    "Address" varchar (30) null, 
    Country varchar (35) null, 
    "State/Province" varchar (35) null, 
    PhoneNumber  varchar (15) null 
    ); 
go 

    insert into Director values 
    ('D700','David','Speilberg','MO-57','9000 Cheque St','US','California','432-553-2267'), 
    ('D-900','William','Bruckheimner','MO-31','68585 lava lane','US','California','519-242-2543'); 
go 

create table Producer 
    (ProducerID  varchar (20) primary key not null, 
    FirstName varchar (40) null, 
    LastName varchar (40) null, 
    MovieID varchar (20) foreign key references Movies(MovieID) null, 
    "Address" varchar (30) null, 
    Country varchar (35) null, 
    "State/Province" varchar (35) null, 
    PhoneNumber varchar (15) null 
    ); 
    go 

    insert into producer values 
    ('P-123','RJ','Abrams','MO-57','45 Canterbelly Cres.','US','California','556-876-4134'), 
    ('P-82','Malcolm','Brooks','MO-62','678 Undertree rd','US','Arizona','897-332-6633'); 
go 

Create table Movies 
(MovieID varchar(20) primary key not null, 
    MovieName varchar (40) null , 
    "Type" varchar (20) null, 
    Rating varchar (20) null, 
    Director varchar (35) null, 
    Producer varchar (35) null, 
    MainActor1 varchar (35) null, 
    MainActor2 varchar (35) null, 
    SupportingActor1 varchar (35) null, 
    SupportingActor2 varchar (35) null, 
    ReleaseDate Date null, 
    Description varchar(500) null 
    ); 
    go 

    Insert into Movies (MovieID,MovieName,"Type",Rating,Director,Producer,MainActor1,MainActor2,SupportingActor1,SupportingActor2,ReleaseDate,"Description") 
    values ('MO-150','The Legend Of Zelda','Fantasy','R','','','','','','','July 23 2018',''), 
    ( 'MO-216','The SQL Games:Replication','Science Fiction','PG','','','','','None','','March 20 2020',''); 
go 

текущий формат: Роберт Дауни-младший. FirstName | LastName Бен Аффлек Christian Bale Will Smith Шарлиз Терон Анджелина Джоли Джессика Альба Cameron Diaz Энистон Брэдли Купер Сандра Баллок Леонардо ДиКаприо Мэтт Дэймон Крис Хемсворт Том Хэнкс Мила Кунис Йоханссон Эмма Камень Julia Roberts

Теперь у меня есть таблица для Ac дилеров, директоров и продюсеров, а также таблицы фильмов со всеми их идентификационными колонками и таблицей MovieInfo с внешними ключами для их связывания.

Мне было интересно, есть ли способ сделать представление, в котором будут указаны имена и фамилии, и сгруппируйте их в 1 колонке для столбца «Актеры, продюсеры, режиссеры и фильмы» и присоедините их.

Так таблица будет выглядеть следующим образом:

Актеры (col1) Производители (col2) Режиссеры (col3) Фильмы (COL4) (Sandra Bullock) (RJ Abrams) (David Спилберга) (Late Для класса)

Любая помощь очень ценится. Я знаю, если бы можно было сделать представление как таковое, это, вероятно, было бы очень сложно.

+3

Что должно произойти, когда фильм имеет более одного продюсера или директора. Примерные данные и ожидаемый результат помогут –

ответ

1

Вы можете присоединиться к значениям двух столбцов, используя || оператор.

SELECT FirstName || ' ' || LastName as name FROM Actors 

будет возвращать один столбец под названием «имя», который содержит Актер ПгвЬЫате и LastName колонны объединяется вместе. Просто используйте ту же логику для всех таблиц, которые, конечно же, будут объединены.

+0

Не нравится || в поле. – dodron1324

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