Запрос базы данных idiorm вне цикла foreach
Мне сказали, что выполнение запроса к базе данных в цикле (foreach) плохо, но как я могу сделать этот запрос другим способом:
$k1 = ORM::for_table('k1')->find_many();
foreach($k1 as $k){
$k2 = ORM::for_table('k2')->where('id', $k->id)->find_one();
echo $k2->name;
}
1 ответ
Решение
С использованием join
Вы можете создать тот же запрос без использования цикла.
Редактировать после комментария:
<?php
$results = ORM::for_table('k1')
->select('k2.*')
->join('k1_to_k2', array('k1.id', '=', 'k1_to_k2.k1_id'))
->join('k2', array('k1.id', '=', 'k2.id'))
->find_many();
foreach($results as $result){
echo $result->name;
}
Предыдущий ответ:
<?php
$results = ORM::for_table('k1')
->select('k2.*')
->join('k2', array('k1.id', '=', 'k2.id'))
->find_many();
foreach($results as $result){
echo $result->name;
}