我有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)
答案 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文档:
答案 2 :(得分:1)
您好,您可以尝试下面的查询
插入项目,从销售
中选择item_sold_qty,5INSERT INTO second_table
SELECT id , 5 FROM a_table WHERE ...
感谢