연도, 참석자 수 및 location
테이블에서 위치를 조회하는 위치가 포함 된 테이블이 events
입니다.중첩 된 루프로 누락 된 값 삽입
tbl_events
+-----+--------------+------+-----------+--------+
| ID | LOCATION_ID | YEAR | ATTENDEES | RATING |
+-----+--------------+------+-----------+--------+
| 1 | 1 | 2014 | 44 | 6 |
| 2 | 2 | 2014 | 36 | 7 |
| 3 | 4 | 2014 | 51 | 7 |
| ... | ... | ... | ... | ... |
| 74 | 2 | 2015 | 59 | 6.5 |
| 75 | 4 | 2015 | 31 | 5 |
| 76 | 12 | 2015 | 66 | 8 |
| ... | ... | ... | ... | ... |
| 133 | 5 | 2016 | 71 | 8.5 |
| 134 | 32 | 2016 | 68 | 6.5 |
| 135 | 14 | 2016 | 59 | 7.5 |
| ... | ... | ... | ... | ... |
+-----+--------------+------+-----------+--------+
tbl_locations
+-----+-------------+
| ID | Name |
+-----+-------------+
| 1 | Falmouth |
| 2 | Plymouth |
| 3 | Exeter |
| 4 | Bristol |
| 5 | Bournemouth |
| 6 | Southampton |
| ... | ... |
| 99 | Edinburgh |
| 100 | Glasgow |
+-----+-------------+
난 단지 년, 위치, 참석자 및 평가의 필요한 정보를 포함하는 일어난 사건의 기록을 가지고있다.
누락 된 값의 행을 추가하여 테이블의 모든 연도에 대해 locations
테이블의 모든 위치를 포함하고 싶습니다.
그래서 나는 (매년) location
테이블의 모든 위치를 반복하면서 매년 테이블을 통과하는 루프를 중첩하여 누락 된 행을 events
테이블에 직접 삽입해야한다고 생각합니다. 임시 테이블에 넣은 후 이벤트 테이블에 삽입 할 수 있습니다.
나는 이벤트와 위치 테이블을 수십 년 동안 합치고 임시 테이블에 삽입하는 방법을 생각했다. 그런 다음 이벤트 테이블에없는 모든 행을 이벤트 테이블에 삽입하십시오.
다른 아이디어는 환영하지만 MySQL에서만이 작업을 수행 할 수 있습니다.
이상적으로는 프로 시저로 저장하고 나중에 다시 실행할 수 있습니다.
** 내가 누락 된 값의 행을 추가하고 싶습니다 : 그들, 그냥 당신이 이벤트가 누락 된 슬롯
null
의 (또는 다른 사용자 정의 값)으로 행을 얻을 수 있도록 실제 사건에 그들과 합류 왼쪽 테이블에있는 모든 연도에 대한 위치 테이블의 모든 위치를 포함 시키십시오. **이 문장으로 더 명확하게 나타낼 수 있습니까? –매년 모든 이벤트가 방문되는 것은 아닙니다. 하지만 여전히 테이블에 행이 있기를 원하므로 ID, location_id, 년, 참석자 및 등급에 NULL이 표시됩니다. – n8udd