插入由多个选择生成的多行

insert multiple rows that are generated by multiple selects

我有 2 个 table。其中一个包含姓名列表,另一个包含特定日期。我需要能够生成一个插入函数,将行插入第三个 table.

对于第一行 table 的每一行,我需要将第二行 table 的所有行插入到第三行 table。

假设 table 1 中有 10 行,table 中有 20 行。插入函数必须能够插入 200 行。

所以如果我有一个 table 与 Mary、John 和 James 在姓名栏上,另一个 table 与 2017-01.01、2017-05-01、2017-08-08、2016 -12-31 在日期栏上。我需要一个插入函数,它能够将行插入到第三个 table 中,这样日期列中的所有日期行都将在名称列中包含 Mary,所有这些日期行中的名称列中将包含 John,等等.

原因是我实际上在名称列上有大约 400 个名称,在日期列上有大约 50 个日期(取决于确切的 select)。我不想手动执行此操作。

我会 google 但我很难想出正确的搜索词。我得到了我不想要的答案...

您正在寻找 cross join,我认为:

insert into table3 (name, date)
    select t1.name, t2.date
    from table1 t1 cross join
         table2 t2;

此查询应该会得到相同的结果,不需要打叉。

INSERT INTO table3 (name, date)
SELECT table1.name, table2.date
FROM table1, table2;