comment créer des critères de jointure dans yii
Je avoir des tableaux, l'un est profile
et l'autre est rating
.
rating
a un champ profileid
qui est clé primaire de profile.id
et un champ avec des valeurs de classement. Maintenant, je veux trouver le terrain avec la cote la plus élevée et afficher le profil correspondant. Depuis que je suis nouveau sur YII framework, je vais avoir des problèmes avec elle. Merci de m'aider à sortir d'elle. Ce que je fais est décrit ci-dessous.
$topRage=new CDbCriteria();
$topRage->select="*";
$topRage->alias="t1";
$topRage->order="rateing DESC";
$topRage->join="JOIN `ratings` ON `profile`.`id` = `t1`.`profileId`";
$topRage->limit="1";
yiiframework.com/doc/api/1.1/CDbCriteria#alias-detail
quel est le problème? votre code est bon, exactement où voulez-vous aider?
sa ne fonctionne pas je veux obtenir le profil avec la cote la plus élevée et sa cote de trop les deux sont dans des tables différentes cotes et profil
je ne sais pas sa montre l'erreur de jeter de nouvelles CDbException(Yii::t('yii','CDbCommand échec de l'exécution de l'instruction SQL: {erreur}',
ok..il doit montrer l'instruction sql en cours d'exécution, vous pouvez coller la partie de l'erreur?
quel est le problème? votre code est bon, exactement où voulez-vous aider?
sa ne fonctionne pas je veux obtenir le profil avec la cote la plus élevée et sa cote de trop les deux sont dans des tables différentes cotes et profil
je ne sais pas sa montre l'erreur de jeter de nouvelles CDbException(Yii::t('yii','CDbCommand échec de l'exécution de l'instruction SQL: {erreur}',
ok..il doit montrer l'instruction sql en cours d'exécution, vous pouvez coller la partie de l'erreur?
OriginalL'auteur Bipin Chandra Tripathi | 2012-05-09
Vous devez vous connecter pour publier un commentaire.
Essayez ceci :
Si vous faites cela:
Ratings::model()->findAll($topRage)
, puis les cotes de la table est déjà interrogé, de sorte que vous devez joindre à la table profil.Edit:
pour echo, vous aurez besoin de faire cela:
N'oubliez pas de passer
$rating
à partir du contrôleur.Vous pouvez également utiliser
find($topRage)
au lieu de lafindAll($topRage)
et retirer lelimit
, mais c'est juste une autre façon de faire la même chose.allons revenir à vous..
j'ai édité ma réponse, avec l'écho des déclarations, check it out
OriginalL'auteur bool.dev
simplement des requêtes sans adhérer .
OriginalL'auteur dInGd0nG