2012-02-29 53 views
0

是否可以从mysql内部的值列表中插入?从列表中插入

INSERT INTO changes(uid,typ) 
SELECT owner,(SELECT * FROM(20,30,40)) lst 
FROM info 

换句话说,你可以制作一个值列表,就像子查询的结果一样吗?

+0

您希望在更改表中将哪些内容写入列类型中?第一张唱片20张,第二张30张,第三张唱片40张? – Filype 2012-02-29 02:18:33

+0

@Filype:是的,那就是我想要的 – Mahks 2012-02-29 02:28:27

+0

你可以在信息表中添加另一列吗? – Filype 2012-02-29 02:36:23

回答

1

其实,你试图做的是sintactically和语义不正确:)你试图从select返回3行,并把它们放到外部选择,只接受一个单一的值(1列x 1行)。

此外,MySQL无法知道哪个用户对应每个数字,对吧?然后,如果您有一种方法将内部选择中的用户链接到外部选择,那么您将拥有两张表,并且您将加入它们。

现在,如果您实际上希望将每个所有者加入到您要查找笛卡尔产品的每个数字中,你可以做这样的:

select owner from info, (select 20 union select 30 union select 40) t2 

通过这种方式,我们创建了3个记录,每个这样的我们将它们链接到所有者记录的虚拟表,这将导致:

owner1 | 20 
owner1 | 30 
owner1 | 40 
owner2 | 20 
owner2 | 30 
owner2 | 40 
owner3 | 20 

依此类推。清楚吗?

+0

是的,我猜笛卡尔产品是我想要的。我已经有了一个类似你的解决方案,如果没有人有更好的解决方案,我会接受你的答案,谢谢 – Mahks 2012-02-29 02:53:53