Это должно быть легко, но я не могу вспомнить, как я это делал раньше. Я пытаюсь сделать другой запрос внутри запроса, в котором идентификаторы записей являются матч:Как упростить это 2 MySQL запросов
/*
tables:
models:
model_id
model_name
models_years:
model_year_id
model_id
year
*/
$models = DBW::run('SELECT * FROM models', [], true);
$models_years = DBW::run('SELECT * FROM models_years', [], true);
$output = [];
foreach ($models as $model)
{
$years = [];
foreach ($models_years as $model_year)
{
if ($model_year['model_id'] == $model['model_id'])
{
$years[] = $model_year['year'];
}
}
$output[] = [
'model_name' => $model['model_name'],
'years' => $years
];
}
var_dump($output);
Я использую PDO (параметры: ATTR_DEFAULT_FETCH_MODE = FETCH_ASSOC), а функция «DBW :: беги» возвращает $ stmt-> fetchAll(). Это всего лишь пример того, что я пытаюсь сделать или улучшить, я знаю, что все это можно сделать в одном SQL, я сделал это раньше и не могу вспомнить! :(
Спасибо! второй - это именно то, что я хотел, и если бы вы, пожалуйста, объясните, что произойдет, мы будем очень благодарны. –