SELECT t1.dates_times, t1.file, t2.agent
FROM ftp_json_stat t1, ftp_json t2
WHERE t1.keys REGEXP '^(.{8})' = t2.keys
в t1.keys значения вида: d0790b5d_2018071323
в t2.keys значения вида: d0790b5d
При выполнении запроса - висит, потом отваливается по времени максимального выполнения. Записей в базах не много (100 000).
Запрос правильно составлен? Не могу понять почему висит, может быть получается очень большое количество записей которые он хочет выбрать из-за корявости запроса?
в t1.keys значения вида: d0790b5d_2018071323
в t2.keys значения вида: d0790b5d
Если нужно сравнить значение из t2 с первой до подчёркивания группой из t1, используйте, например
WHERE SUBSTRING_INDEX(t1.keys, '_', 1) = t2.keys
Если длина сравниваемой подстроки фиксирована (8 символов), можно использовать и прямое выделение нужного количества символов
WHERE LEFT(t1.keys, 8) = t2.keys
PS. REGEXP в MySQL в принципе ничего не преобразовывает - только проверяет.
Пробуйте так:
SELECT t1.dates_times, t1.file, t2.agent FROM ftp_json_stat t1
JOIN ftp_json t2 ON t1.keys REGEXP CONCAT('^', t2.keys)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Допустим есть таблица с разными датами (день рождения, день ВДВ, год без наркотиков, вернуть долг пете)Некоторые повторяются каждый год, некоторые...