1

我有一个新手问题...

我有两张桌子:

parentTable
-----------
id_user int(11) not null auto increment primary key,
email varchar(64),
pass varchar(64)

childTable
----------
id_user int(11) not null, 
name varchar(64), 
address varchar(512), 
foreign key (id_user) references parentTable(id_user) 
on update cascade 
on delete restrict

现在我可以插入:

insert into childTable (id_user) select id_user from parentTable where id_user = '1'

但我只想插入名称和地址值。

对不起新手问题,但我潜伏了一天,一无所获。

预先感谢您的回复。

4

1 回答 1

2

关于您的查询的有趣部分是您知道id_user您要选择插入 - 它在您的WHERE子句中。

如果您总是知道id_user,您可以跳过SELECT查询的额外部分并直接执行:

INSERT INTO childTable (id_user, name, address) VALUES (1, 'some name', '123 test street');

如果您出于其他原因需要额外的SELECT,您可以将name/address值直接附加到字段列表中,如下所示:

INSERT INTO childTable (id_user, name, address)
    SELECT id_user, 'some name', '123 test street' FROM parentTable WHERE id_user = '1';
于 2012-08-25T16:57:33.263 回答