这是问题:

使用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

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

最佳答案

我会尝试这样的:

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)

关于sql - 如何将多个表中的数据插入到一个表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19649308/

10-12 23:22