2013-10-29 99 views
2

这是一个问题:如何插入多个表中的数据到一个表

使用SQL CREATE TABLE语句,创建一个表,MOVSTARDIR,带有属性的电影数量,星号,和导演数量和4个演技奖。主键是电影号码,明星号码和导演号码(全部3个),并强制执行参照完整性。导演编号是该电影的导演,而这位明星肯定已出现在该电影中。 使用INSERT INTO加载MOVSTARDIR(从现有表格)。


这是我目前的解决方案:

CREATE TABLE MOVSTARDIR 
(
MVNUM SHORT NOT NULL, 
STARNUM SHORT NOT NULL, 
DIRNUM SHORT NOT NULL, 
BESTF TEXT, 
BESTM TEXT, 
SUPM TEXT, 
SUPF TEXT 
); 

ALTER TABLE MOVSTARDIR ADD CONSTRAINT PrimeKey PRIMARY KEY(MVNUM, STARNUM, DIRNUM) 

INSERT INTO MOVSTARDIR 
SELECT MOVIE.MVNUM, STAR.STARNUM, DIRECTOR.DIRNUM, BESTF, BESTM, SUPF, SUPM 
FROM MOVIE, STAR, DIRECTOR, MOVSTAR, MOVDIR 
WHERE MOVSTAR.MVNUM = MOVIE.MVNUM 
AND MOVDIR.MVNUM = MOVSTAR.MVNUM 
AND MOVDIR.DIRNUM = DIRECTOR.DIRNUM 

我的问题是,所创建的表仍是空白。我如何填写所需的数据?

+1

贵'select'查询返回的数据?你在'insert'语句之后提交事务吗? –

回答

0

我想试试这个:

CREATE TABLE MOVSTARDIR AS 
(SELECT MOVIE.MVNUM, STAR.STARNUM, DIRECTOR.DIRNUM, BESTF, BESTM, SUPF, SUPM 
FROM MOVIE, STAR, DIRECTOR, MOVSTAR, MOVDIR 
WHERE MOVSTAR.MVNUM = MOVIE.MVNUM 
AND MOVDIR.MVNUM = MOVSTAR.MVNUM 
AND MOVDIR.DIRNUM = DIRECTOR.DIRNUM) 
相关问题