如果从两个没有共同点的不同表中检索这些值,我如何将值插入表中? 从第一个表中,我将只检索(SELECT)一个值,其余的值将从第二个表中检索。
我想从第一个表中检索第一个值,从第二个表中检索剩余的值,然后将所有这些值返回到我想要执行的INSERT中。
编辑:这是结构的一个例子:
以下是表格。我希望这很清楚。请随时向我询问更多详情。
CREATE TABLE table1
(id int, productName varchar(7), description varchar(55))
;
CREATE TABLE table2
(id int, productName varchar(7))
;
这就是我的尝试:
INSERT INTO table2 (`id`,`productName`)
SELECT COALESCE(Max(id + 1), 0)
FROM table2
UNION
SELECT productName
FROM table1
这显然会给我一个错误,但至少我希望这更清楚。
答案 0 :(得分:0)
使用内嵌视图获取最大当前ID Table2
。然后用Table1
CROSS JOIN生成笛卡尔积。我认为您需要为新记录添加不同的ID,因此我建议您增加每行的派生最大ID。
INSERT INTO table2 (id,productName)
SELECT t2.max_id + rownum
, t1.productName
FROM ( select COALESCE(Max(t2.id), 0) as max_id
from table2 ) t2
CROSS JOIN table1 t1