如何合并表以有选择地向mysql中的第三个表添加记录?

kkbh8khc  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(315)

我正在尝试将两个表合并在一起,以便在当前不存在记录的地方添加包含一周中某一天的记录。例如,给定下表:

shop_id process_day

1   Mon
1   Tues
1   Wed
1   Thurs
1   Fri
1   Sat
1   Sun
2   Mon
2   Tues
3   

days_of_week

Mon
Tues
Wed
Thurs
Fri
Sat
Sun

如何将它们合并以添加一周中的几天,以便新生成的表如下所示:

shop_id data_process_date
1   Mon
1   Tues
1   Wed
1   Thurs
1   Fri
1   Sat
1   Sun
2   Mon
2   Tues
2   Wed
2   Thurs
2   Fri
2   Sat
2   Sun
3   Mon
3   Tues
3   Wed
3   Thurs
3   Fri
3   Sat
3   Sun
qvtsj1bj

qvtsj1bj1#

你可以用 CROSS JOIN 得到所有可能的组合。在派生表中,我们可以得到 shop_id ,然后进行笛卡尔积(交叉连接),以获得所有可能的组合:

SELECT 
  dt.shop_id, 
  t2.days_of_week AS date_process_date 
FROM 
(
 SELECT DISTINCT shop_id FROM table1
) AS dt 
CROSS JOIN table2 AS t2
ORDER BY dt1.shop_id

相关问题