У меня есть две MySQL таблицы (table_a и table_b) и таблица соединений (table_ c).
Структуры таблиц:
__________________
| table_a: |
|----------------|
| id |
| result_column |
------------------
__________________
| table_b: |
|----------------|
| id |
| name |
------------------
__________________
| table_c: |
|----------------|
| id |
| table_a_id |
| table_b_id |
------------------
Моя цель:
Я хочу найти запрос, который будет:
- Перебирать каждую запись table_a и получать значение table_a.id
- Найти все записи в table_ c с соответствующим значением table_ c .table_a_id
- Для каждой соответствующей записи в таблице_ c получить значение table_ c .table_b_id
- Найти запись в table_b у которого есть совпадающее значение table_b.id
- Для этой совпадающей записи в table_b получите значение table_b.name
- В table_a объедините каждое совпадающее значение имени с соответствующим table_a.result_column
Пример: до запроса:
_______________________ _________________________________ ________________
| table_a: | | table_c: | | table_b: |
|---------------------| |-------------------------------| |--------------|
| id | result_column | | id | table_a_id | table_b_id | | id | name |
|-----|---------------| |-----|------------|------------| |-----|--------|
| 1 | | | 1 | 1 | 3 | | 1 | Kevin |
| 2 | | | 2 | 1 | 4 | | 2 | Jesse |
| 3 | | | 3 | 2 | 2 | | 3 | Karen |
----------------------- | 4 | 3 | 1 | | 4 | Tim |
| 5 | 3 | 5 | | 5 | Lauren |
--------------------------------- ----------------
После запроса:
_______________________ _________________________________ ________________
| table_a: | | table_c: | | table_b: |
|---------------------| |-------------------------------| |--------------|
| id | result_column | | id | table_a_id | table_b_id | | id | name |
|-----|---------------| |-----|------------|------------| |-----|--------|
| 1 | Karen, Tim | | 1 | 1 | 3 | | 1 | Kevin |
| 2 | Jesse | | 2 | 1 | 4 | | 2 | Jesse |
| 3 | Kevin, Lauren | | 3 | 2 | 2 | | 3 | Karen |
----------------------- | 4 | 3 | 1 | | 4 | Tim |
| 5 | 3 | 5 | | 5 | Lauren |
--------------------------------- ----------------
Для абсолютного кл Я понимаю, что это невероятно плохая практика в реляционной таблице данных. Это настолько далеко от нормализации, насколько это возможно. Я бы никогда не разработал такую базу данных. Мне было поручено создать пользовательский столбец со списком значений чисто для бизнес-случая.