如何合并表以选择性地将记录添加到MySQL中的第三个表中



我正在尝试将两个表合并在一起,以便包含在当前不存在记录的位置添加星期几。例如,给定以下表格:

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

您可以使用CROSS JOIN来获得所有可能的组合。在派生表中,我们可以获得shop_id的唯一值,然后进行笛卡尔乘积(CrossJoin(,以获得所有可能的组合:

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 

最新更新