Как объединить таблицы, чтобы выборочно добавлять записи в третью таблицу в MySQL? - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь объединить две таблицы так, чтобы запись, содержащая добавляется день недели, где в данный момент нет записей. Например, с учетом следующих таблиц:

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 голосов
/ 09 ноября 2018

Вы можете использовать CROSS JOIN, чтобы получить все возможные комбинации. В производной таблице мы можем получить уникальные значения 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...