Мне нелегко ловить голову в гнездо этих SELECT, чтобы использовать только один запрос для извлечения необходимых мне данных!Упрощение множественных вложенных запросов на выбор MYSQL
Мне нужно найти и вернуть строку в таблице композиций, которая имеет самую последнюю дату, которая была раньше даты загрузки в таблице нагрузок.
Это работает, но я должен быть в состоянии сделать это в одном запросе:
$sql = "SELECT * FROM loads JOIN generators ON gen_key =gen_id ";
$sql.=" WHERE field_id= ".$fieldcode;
$sql.=" ORDER BY load_date DESC,load_time DESC ";
$result=mysqli_query($db_connection,$sql);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$sql2 = "SELECT * FROM (SELECT * FROM composition WHERE comp_date <= '".$row[load_date]."' AND gen_id =".$row[gen_id]." ORDER BY comp_date ASC) as T1 ORDER BY comp_date DESC LIMIT 1";
$result2=mysqli_query($db_connection,$sql2);
$row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC);
// Output $row[] and $row2[] data
}
спасибо за любую помощь!
Databse звонки внутри цикла, как правило, не очень хорошая идея. Вы должны быть в состоянии сделать соединение и достичь желаемого результата – Jaime