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

时间:2018-11-09 15:21:10

标签: mysql join

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用CROSS JOIN获取所有可能的组合。在Derived table中,我们可以获得shop_id的唯一值,然后进行笛卡尔乘积(Cross Join),以获取所有可能的组合:

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