Je ne peux pas sembler figurer cela pour la vie de moi: xGROUP_CONCAT à partir de plusieurs sous-requêtes?
J'ai deux tables ..
- 1 = Tag Liens
- 2 = Tag données
Lorsque je demande un profil, chaque profil peut avoir plusieurs entrées dans la table des liens de balises. Une fois que j'ai récupéré les liens d'étiquette, je veux obtenir le texte d'étiquette de la table de données d'étiquette.
Je peux le faire avec: SELECT * FROM platform.tagWords WHERE tagId IN (SELECT tagId FROM platform.user sProfilesTags WHERE userId = 1001)
Mais il passe par chaque balise (environ 50 000), puis vérifie si elle est affectée à l'utilisateur de sorte que n'est pas exactement une solution que chaque requête prend 5 8 secondes
Y a-t-il un moyen d'inverser cela?
Des conseils ou astuces seront très appréciés.
Merci d'avance!
* Mise à jour
Je suis en train de donner un coup de couteau ce avec une jointure, mais je suis coincé là-bas aussi: P
SELECT
GROUP_CONCAT(tagWords.tagWord SEPARATOR ', ') AS tags,
usersProfiles.*
FROM platform.users u
INNER JOIN platform.usersProfilesTags ON usersProfilesTags.userId = u.userId
INNER JOIN platform.usersProfiles ON usersProfiles.userId = u.userId
INNER JOIN platform.tagWords ON tagWords.tagId = usersProfilesTags.tagId
WHERE u.userName = 'mattstest'
Vous mentionnez le profil, mais le tableau est Tag Data? –
Oui, l'autre (table d'origine) est usersProfiles où j'obtiens l'ID utilisateur pour trouver les balises qui sont liées à partir de la table des liens d'étiquette. –
Quel est le schéma de la table (les instructions 'CREATE' pour les tables)? Qu'en est-il du résultat de la déclaration de jointure n'est pas ce que vous désirez? – outis