如何在表中为另一个表中的每个用户创建一行?

时间:2013-07-29 15:15:45

标签: mysql

我有一个名为users的表,我想让所有用户和每个用户在名为products的表中创建一行。是否可以通过查询执行此操作?

2 个答案:

答案 0 :(得分:3)

根据相应的表结构,INSERT INTO ... SELECT语句应该起作用:

INSERT INTO `products`
SELECT 1 FROM `users`

如果products表有一个int - 列,则会插入与users表中的用户一样多的内容。

您只需调整SELECT语句即可在新表中生成所需的值。

Example Fiddle

答案 1 :(得分:1)

您可以从这样的select语句中插入结果:

INSERT INTO products (field1,field2...) SELECT 
    something_that_goes_into_products_field1,
    something_that_goes_into_products_field2,
    ....
FROM users
WHERE users_that_have_to_be_inserted

如果产品有自动增量字段,您可能应该从字段列表中省略它。