Можно вытаскивать 2 массива отдельно по необходимым параметрам и после объединять их через php:
Вытаскиваем сначала даты:
$dates = $this->get_dates( select * );
затем переформируем даты в новый массив, т.к. вытащенные даты могут идти не по порядку
и в отдельный массив суем даты, данные по которым нам нужны:
foreach ($dates as $key => $date)
{
$data_to_show[$key] = $date;
$dates_array[] = $date['date'];
}
затем вытаскиваем только те данные, по датам которых нам нужны:
$analiz = $this->get_analizs( select * where_in($dates_array));
и затем пересобираем первый массив
foreach ($analiz as $row)
{
$data_to_show[$row['analiz_key']][] = $row;
}
-----------------------------
я не знаю какие ключи у вас там выбираются, но вот мой пример, где объединяются пользователи и машины, которые есть у этих пользователей
надеюсь правильно вас понял и в правильном направлении вас подтолкнул
$users = $this->user_model->get_users();
foreach ($users as $user)
{
$users_to_show[$user['username']] = $user;
$names[] = $user['username'];
}
$cars = $this->user_model->get_cars($names);
foreach ($cars as $car)
{
$users_to_show[$car['owner']]['cars'][] = $car;
}