我有2张桌子。其中一个包含名称列表,另一个包含特定日期。我需要能够生成一个插入函数,将行插入第三个表。
对于第一个表中的每一行,我需要将第二个表中的所有行插入到第三个表中。
假设表1中有10行,表2中有20行。插入函数必须能够插入200行。
所以,如果我在名称栏上有一张玛丽,约翰和詹姆斯的表,而在日期栏上有2017-01.01,2017-05-01,2017-08-08,2016-12-31的另一张表。我需要一个插入函数,它能够将行插入到第三个表中,以便日期列中的所有日期行都在名称列中包含Mary,所有那些日期都在名称列中包含John等。
原因是我实际上在名称列上有大约400个名字,在日期列上有大约50个日期(取决于确切的选择)。我不想手动这样做。
我会谷歌,但我很难找到正确的搜索词。我得到了我不想要的答案......
答案 0 :(得分:1)
您正在寻找cross join
,我认为:
insert into table3 (name, date)
select t1.name, t2.date
from table1 t1 cross join
table2 t2;
答案 1 :(得分:1)
此查询应该会得到相同的结果,不需要交叉。
INSERT INTO table3 (name, date)
SELECT table1.name, table2.date
FROM table1, table2;