Plusieurs jointures ou sous-requêtes à gauche?

Je travaille sur la jonction de plusieurs tables pour extraire des données liées aux « exécutions » des utilisateurs, cela inclut des bases comme runID, nom d’utilisateur, etc., mais aussi des jointures aux temps d’exécution et aux favoris.

J’ai la requête ci-dessous qui utilise un LEFT JOIN pour la table user_run_times et run_favourites.

La requête doit afficher toutes les exécutions pour l’utilisateur, la dernière date d’exécution, s’il s’agit d’un favori et la durée d’exécution la plus rapide – Toutes sont affichées, mais si plus d’une fois est enregistrée, le nombre de favoris dépasse un (ne devrait jamais être qu’un ou zéro).

Je cherche quelques suggestions sur la façon d’améliorer cette requête? La sortie actuelle est:

UserID runID createdBy username dateCreated favourite lastRan fastestTime4 3 3 bob 11-12-2011 3 27-01-2012 36920030

La colonne favourite ne doit en afficher qu’une (car il y a une ligne dans run_favourites) mais elle en affiche trois (deux pour user_run_times et une pour run_favourites)

J’espère que je n’ai pas rendu cela trop déroutant, si quelqu’un pouvait suggérer comment je pouvais afficher la structure de la table dans un format « texte » comme la plupart des autres ici, je les publierai également.

Tout conseil apprécié, merci! 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

More: