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