如何使用来自其他两个表的数据填充新表?

时间:2012-09-23 18:51:18

标签: sql sql-server

我有一个我需要改变的数据库。 原始数据库由3个表组成。 现在需要再增加一个表格。

新表的数据来自原始数据库的两个表。 我可以创建表,但我不能用数据填充它。 原始表格是:

create table Accommodatie
(plaatscode       varchar(3)  not null,
 accommodatienr   numeric(3)  not null,
 accommodatiename varchar(25) not null,
 adres            varchar(25) not null,
 plaatsnaam       varchar(20) not null,
 land             varchar(20) not null,
 email            varchar(30) null,
 internet         varchar(30) null,
 contactpersoon   varchar(25) null,
 primary key (plaatscode, accommodatienr));

create table Vervoer
(vervoercode    numeric(5)   not null,
 plaatscode     varchar(3)   not null,
 stedenadviseur varchar(20)  not null,
 vervoersoort   varchar(12)  not null,
 maatschappij   varchar(15)  not null,
 omschrijving   varchar(50)  not null,
 overstap       varchar(30)  null,
 primary key (vervoercode));

create table Vervoerprijs
(vervoercode  numeric(5)    not null,
 seizoen      varchar(6)    not null,
 prijs        numeric(6,2)  not null,
 plaatscode   varchar(3)    not null,
 primary key (vervoercode, seizoen),
 foreign key (vervoercode) references Vervoer(vervoercode));

新表格如下:

CREATE TABLE Plaatscode
(   plaatscode      varchar(3)  not null,
    stedenadviseur  varchar(20) not null,
    land            varchar(20) not null,
    PRIMARY KEY (plaatscode));

对于新表,我需要来自plaatscode的{​​{1}}和land以及表Accommodatie中的vervoerscode

你能帮我构建一个填充新表的查询吗?

1 个答案:

答案 0 :(得分:2)

如果你要做的只是填充你的新表,那么以下内容应该有效:

INSERT INTO Plaatscode
(
  plaatscode,
  stedenadviseur,
  land
)
SELECT
a.plaatscode, v.stedenadviseur, a.land
FROM Accommodatie a
INNER JOIN Vervoer
ON a.plaatscode = v.plaatscode