是否可以将这些表连接到视图和组合列?

时间:2015-03-12 03:16:20

标签: sql sql-server tsql join views

我目前有一些看起来像这样的表:

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

目前的格式:Robert Downey JR。 姓|姓 本阿弗莱克 克里斯蒂安·贝尔 威尔史密斯 查理兹塞隆 安吉丽娜·朱莉 杰西卡阿尔巴 卡梅隆·迪亚兹 詹妮弗安尼斯顿 布莱德利·库珀 桑德拉·布洛克 莱昂纳多·迪卡普里奥 马特达蒙 克里斯赫姆斯沃思 汤姆汉克斯 米拉库尼斯 Scarlet Johansson 艾玛斯通 朱莉娅罗伯茨

现在我有一个演员,导演和制作人表以及一个电影表,所有表都有自己的ID列和一个带外键的MovieInfo表来链接它们。

我想知道是否有办法制作一个可以取名字和姓氏的视图,并将它们放在一列中,用于演员,制片人,导演和电影专栏,并让他们加入。

所以表格看起来像这样:

演员(col1)制片人(col2)导演(col3)电影(col4)  (桑德拉布洛克)(RJ艾布拉姆斯)(大卫斯皮尔伯格)(课后期)

非常感谢任何帮助。我知道如果可以这样做,它可能会非常复杂。

1 个答案:

答案 0 :(得分:1)

您可以使用||加入两列的值操作

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

将返回一个名为" name"的列。包含连接在一起的Actors FirstName和LastName列。只需对所有表使用相同的逻辑,当然也要适当加入。