Une jointure simple avec un group by, ca n'a vraiment rien de compliqué. C'est du même niveau de difficulté de compréhension et d'utilisation que les boucles en php.
Ce qui est compliqué, je te l'accorde, c'est les requettes imbriqués mais une fois qu'on a compris comment ca marche, on s'en sort sans trop de difficultés.
A par s'il y a des traitements complexes à faire en php, une requette à l'intérieur d'une boucle correspondant au traitement d'une autre requette revient à une requette avec jointure + 1 seule boucle.
C'est vrai que la syntaxe des jointures peut faire peur, mais ca s'utilise sans mal. 