J'ai une requête dans Laravel:Laravel optimisation des requêtes
...
$query = $model::group_by($model->table().'.'.$model::$key);
$selects = array(DB::raw($model->table().'.'.$model::$key));
...
$rows = $query->distinct()->get($selects);
cela fonctionne bien et me donne les clés des champs que j'ai besoin, mais le problème est que je dois obtenir toutes les colonnes et non pas seulement la clé .
utilisant ceci:
$selects = array(DB::raw($model->table().'.'.$model::$key), DB::raw($model->table().'.*'));
est pas une option, cuz il ne fonctionne pas avec PostgreSQL, donc j'utilisé $rows
pour obtenir le reste des colonnes:
for ($i = 0; $i<count($rows); $i++)
{
$rows[$i] = $model::find($rows[$i]->key);
}
mais comme vous voyez c'est c'est tellement inefficace, alors que puis-je faire pour le rendre plus rapide et plus efficace?
vous pouvez trouver tout le code ici: https://gist.github.com/neo13/5390091
ps. Je devrais utiliser rejoindre mais je ne sais pas comment?
ne fonctionne pas avec PostgreSQL – user2277033