0

我有一个 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 语句,然后创建一个查询然后运行它。我需要这样的东西(这不是一个真正的查询 - 它只是显示我需要什么):

插入 second_table (user_id,group_id) 值 ((12,14,17,18),5)

或者更准确地说是这样的:

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

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

4

3 回答 3

6

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

INSERT INTO second_table (user_id, group_id)
SELECT id, 5
FROM a_table
WHERE ...
于 2012-05-07T07:44:52.333 回答
1

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

插入到项目中选择 item_sold_qty , 5 from sales

INSERT INTO second_table 
SELECT id , 5 FROM a_table  WHERE ...

谢谢

于 2012-05-07T07:57:26.600 回答
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

于 2012-05-07T07:48:45.350 回答