Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Приветствую.
Есть 2 таблицы:
tbl1
id | record_id
1 | 1
2 | 2
3 | 3
4 | 4
и
tbl2
id | record_id | field_key | field_value
1 | 1 | sport | 1
2 | 1 | sport | 2
3 | 2 | sport | 1
4 | 2 | color | 2
5 | 2 | color | 7
6 | 2 | color | 8
7 | 4 | sport | 1
8 | 4 | sport | 2
9 | 4 | color | 4
tbl1.record_id = tbl2.record_id
count(*) from tbl1 = 250000 строк
count(*) from tbl2 = 550000 строк
Количество возможных вариантов field_key = 16 (т.е. sport, color , ... , 16 шт.)
Каждый record_id может иметь от 0 до n field_key
Из этих двух таблиц нужно заполнить таблицу:
tbl3
id | record_id | field_sport | field_color | ...
1 | 1 | 1,2 | NULL
2 | 2 | 1 | 2,7,8
3 | 3 | NULL | NULL
4 | 4 | 1,2 | 4
Первое, что пришло на ум - перебор tbl1 / INSERT в tbl3 всех возможных вариантов record_id / UPDATE значениями по field_key используя GROUP_CONCAT. Но при таком варианте update по 1 ключу занимает больше 5 часов. Может можно как-то заполнить tbl3 через один INSERT и при этом не ждать несколько дней?
Заранее спасибо.
Отредактированно M@xim (15.01.2017 11:55:52)
Неактивен
Неактивен
Огромное спасибо!
Все идеально работает. Очень помог индекс по record_id.
Неактивен
Страниц: 1