Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide pour requete Demi-jointure

Sujet résolu
    27 décembre 2018 à 23:59:55

    Bonjour,

    Je viens vers vous car je bloque sur une requete...

    J'ai une table de grades qui liste tous les grades disponibles pour un joueur avec le nombre de point maximum pour le grade.

    J'ai une autre table users qui liste mes joueurs avec leur experience.

    Je souhaite me servir de l'experience des joueurs afin d'afficher le grade correspondant à l'experience.

    Exemple : 

    TABLE GRADES

    |    id    |    grade    |    point    |

    __________________________

    |    1    |   Niveau 1  |     300    |

    |    2    |   Niveau 2  |     600    |

    TABLE USERS

    |    id    |    name    |    experience    |

    ______________________________

    |    1    |      test      |     330             |

    Ainsi si mon joueur a une eperience de 330 je dois donc afficher un niveau de 2 car au dessus de 300 et en dessous de 600.

    La requete qui me pose probleme (sous Codeigniter):

    $this->db->select('grades.*, users.experience as exp')
    			->from('grades, users')
    			->where('users.name', $username)
    			->where('grades.point >=', 'exp');
    			//->where_in('point >=', $exp);
    
    $query = $this->db->get();
    
    if($query->num_rows()>0)
    {
    	return $query->result();
    }

    Merci d'avance ;)

    -
    Edité par xenos92 28 décembre 2018 à 0:01:01

    • Partager sur Facebook
    • Partager sur Twitter
      28 décembre 2018 à 9:26:08

      Je ne connais pas codeigniter, mais en SQL la requête que tu cherche à faire serait:

      SELECT 
      	grades.*, users.experience as exp 
      FROM
      	users
      JOIN
      	grades on grades.point <= users.experience
      WHERE
      	users.name = ?
      AND
      	grades.point = (SELECT MAX(point) FROM grades where point <= users.experience)


      Le principe est de récupérer le pallier maximal éligible pour le joueur 

      • Partager sur Facebook
      • Partager sur Twitter

      Aide pour requete Demi-jointure

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown