Объединить запросы из цикла в главный

141
24 октября 2019, 12:10

Задача оптимизировать работу с планировщиком задач в CRM. Вынести все запросы из цикла (их там до 15шт - а это пипец) в один главный и уже с результатом работать в цикле. Я попробовал сделать через LEFT JOIN, все было радужно и хорошо до момента, когда надо было в запрос добавить базу заполненных полей лида, которому привязана задача.

$remRemember = $mysqli->query("SELECT 
                                    `tk`.`end_datetime`,
                                    `tk`.`id_connection`,
                                    `tk`.`id_staff_contractor`,
                                    `cb`.`id`,
                                    `cb`.`timezone`,
                                    `tz`.`id`, 
                                    `ld`.`id`, 
                                    `icn`.`id_data`, 
                                    `st`.`id_staff`, 
                                    `tk`.`id` AS `id_task`,
                                    `tz`.`timezone_plus` AS `timezone_plus`, 
                                    `ld`.`id` AS `id_contact`, 
                                    `cb`.`id` AS `id_cabinet`, 
                                    `st`.`id_staff` AS `id_staff_contractor` 
                                FROM tasks tk
                                    LEFT JOIN cabinet cb ON cb.id = tk.id_cabinet
                                    LEFT JOIN timezone tz ON tz.id = cb.timezone 
                                    LEFT JOIN lids ld ON ld.id = tk.id_connection 
                                    LEFT JOIN staff st ON st.id_staff = tk.id_staff_contractor
                                    LEFT JOIN input_content icn ON icn.id_data = ld.id 
                                WHERE 
                                    tk.end_datetime 
                                BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY) 
                                ORDER BY 
                                    tk.end_datetime"); 

Все хорошо работает, пока я не добавляю выборку из input_content. В момент вывода результата основной таблицы и вывода данных из input_content результатом 27 строк, но в цикле происходит дублирование данных основной таблицы.

Суть в том, чтобы использовать данные из этих таблиц в цикле и там уже отправлять напоминания.

Хотел попробовать заносить все в массивы перед циклом, а потом уже работать с ними, но базы lids и input_content достаточно объемные (10ки тысяч) и заносить все их данные в массивы кажется жутью...

Как лучше сделать?

READ ALSO
C++ clr заполнить Dictionary в нативной части кода

C++ clr заполнить Dictionary в нативной части кода

Есть желание заполнять Dictionary вида Dictionary<Enum,Struct> в нативной части кода, используя возможности трансляции через vcclrh

131
Native wifi setprofile and connecting c++

Native wifi setprofile and connecting c++

Мой профиль ( через команду netsh wlan show networks) имеет вот такую кофигурацию:

154
Тип собираемых библиотек по умолчанию

Тип собираемых библиотек по умолчанию

По умолчанию у меня собираются статические библиотеки (если явно не указываю SHARED при создании библиотеки или BUILD_SHARED_LIBS при запуске cmake), а как...

131
C++ и русские символы

C++ и русские символы

Предположим имеется следующий код, почему если его выполнить, и ввести, например ваыёё, то программа завершится, будто бы, пропустив оставшиеся...

144