我在这里经历了this链接。我有类似的问题,但我想要来自两个不同表格的数据。这样的事情。但它没有返回预期的结果。
INSERT INTO tbl_1 (fld_id1,fld_id2)
SELECT tbl_2.col1
FROM tbl_2 WHERE someCondi,
SELECT tbl_3.col1
FROM tbl_3 WHERE someCondi
例如
表1:
Col1 Col2
----------
1 56
1 57
1 59
表2:
Col1
----
1
表3
col1
-----
56
57
59
答案 0 :(得分:1)
如果(fld_id1,fld_id2)是tbl_2.col1和tbl_3.col1,那么你必须使用JOIN
INSERT INTO tbl_1 (fld_id1,fld_id2)
SELECT t2.col1, t3.col1
FROM tbl_2 t2
INNER JOIN tbl_3 t3 ON "JOIN CONDITION"
WHERE "t2.someCondi"
AND "t3.someCondi"
因此,如果你不能使用JOIN
,你可以尝试使用笛卡尔积:
INSERT INTO tbl_1 (fld_id1,fld_id2)
SELECT t2.col1, t3.col1
FROM tbl_2 t2, tbl_3 t3
WHERE "t2.someCondi"
AND "t3.someCondi"
答案 1 :(得分:1)
看起来您正在寻找交叉加入:
INSERT INTO tbl_1 (fld_id1,fld_id2)
SELECT t2.col1, t3.col1
FROM table3 t3
cross join table2 t2
WHERE <some condition>
至少在您向我们展示的示例中,这将返回您的预期结果。