如何在具有相等第二个单元格的表中插入多个值

时间:2012-05-07 07:40:47

标签: mysql sql

我有MySQL数据库,我需要在表中插入一些特定的数据。数据应如下: SELECT id FROM a_table WHERE ... 返回一个id列表。 我需要在 second_table 中插入 n 行,其中 n 是第一个查询中返回行的计数。第二个表需要2个字段 - 第一个将是第一个查询的记录,第二个将是一个整数,我将从我的脚本传递。 例如:如果第一个查询返回(12,14,17,18)并且我脚本中的整数是5,我需要创建一个查询,它将插入(12,5) ,(14,5),(17,5),(18,5)我需要在数据库层完成 - 我不想创建一个select语句,然后创建一个查询然后运行它。 我需要这样的东西(这不是一个真正的查询 - 它只是显示我需要的东西):

INSERT INTO second_table(user_id,group_id)VALUES((12,14,17,18),5)

或更准确地说是这样:

INSERT INTO second_table(user_id,group_id)VALUES((SELECT id FROM a_table WHERE ...),5)

有没有办法只在SQL中执行此操作(无tsql-sql)

3 个答案:

答案 0 :(得分:6)

您可以在SELECT中包含文字值:

INSERT INTO second_table (user_id, group_id)
SELECT id, 5
FROM a_table
WHERE ...

答案 1 :(得分:1)

INSERT INTO 
    second_table 
       (
       user_id
       ,group_id
       ) 
SELECT
    id
    ,5
FROM
    first_table
WHERE
    ...

有关INSERT ... SELECT语法的详细信息,请参阅MySQL文档:

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

答案 2 :(得分:1)

您好,您可以尝试下面的查询

插入项目,从销售

中选择item_sold_qty,5
INSERT INTO second_table 
SELECT id , 5 FROM a_table  WHERE ...

感谢