J'essaie d'obtenir une requête MySQL pour me donner des données relatives à 2 tables. Ainsi, un utilisateur aurait accès à 2 projets, avec un total de 3 messages (dans "stream"). Essentiellement, je veux obtenir les projets associés dans project_users et ensuite obtenir des messages dans le flux associé à ces projets.Requête MySQL dans 3 tables
Les données ressemble à ceci:
Tableau 1: l'utilisateur (1 utilisateur identifié par 'id')
Tableau 2: project_users (utilisateur associé à 2 projets dans ce cas)
Tableau 3: flux (messages attachés à différents projets, mais je devrais obtenir 3 sur la base de mon jeu de données de test)
requête mon (cassé) ressemble à ceci:
SELECT U.`id`, P.`kf_users`, P.`kf_projects`, S.`kf_projects`, S.`body`
FROM users U
LEFT JOIN projects_users P ON U.`id` = P.`kf_users`
LEFT JOIN stream S ON P.`kf_users` = S.`kf_projects`
WHERE U.`id` = 1
Que diable suis-je manque? J'ai essayé des sous-requêtes, mais cela ne m'a pas permis d'avoir plusieurs lignes, ce qui rendait cela inutile dans la forme que j'avais.
Merci!
est 'U.kp_user' dans la clause' WHERE' la colonne correcte (pas supposée être simplement 'U.id')? (Je n'ai pas de schéma, donc c'est juste une supposition.) –
Désolé, c'était une faute de frappe. Toujours pas de chance cependant! –
Vous devez fournir le schéma. Comment la requête est-elle brisée? – Pepe