Je veux fusionner trois tables ensemble comme indiqué ici:
p>
En gros, je veux inclure les éléments des trois tableaux T1, T2 et T3 et les avoir fusionnés comme indiqué dans la table des résultats. J'ai essayé quelque chose comme ceci: p> mais il ne semble pas avoir travaillé. Il montre les résultats mais seulement des valeurs uniques. Dans le résultat si Y a-t-il quelque chose qui me manque? P> p> utilisateur code> est johny code>, il ne montrera que la première valeur et ignorera la seconde, bien qu'elle soit dans la table des résultats. P>
3 Réponses :
Éliminer le groupe par code>. Il n'y a pas besoin de cela dans cette requête. SELECT T1.user, T2.tid, T2.name, T3.type, T1.mid
FROM T1
LEFT JOIN T2 ON T1.mid = T2.mid
LEFT JOIN T3 ON T2.tid = T3.tid;
Merci oui, c'était exactement le problème, son travail maintenant.
Le groupe n'est pas nécessaire si vous souhaitez voir tous les résultats pour chacun des utilisateurs. Sinon, il va cacher certaines des lignes et montrera une seule par utilisateur.
JOINT JOINT T1 DROIT À T2 QUE LE NOUVEAU DE JOINTE À T3. C'est une bonne pratique s'il y a un élément de T1 qui n'a aucune connexion avec l'élément de T3 pour éviter de montrer le résultat null pour les champs TÂ £. P>
SELECT T1.user, T2.tid, T2.name, T3.type, T1.mid FROM T1 RIGHT JOIN T2 ON T1.mid = T2.mid LEFT JOIN T3 ON T2.tid = T3.tid;
Oui droite rejoindre est meilleur. Depuis que j'ai eu ce problème et que j'utilisais où avec t2.tid! = 'Null' en plus de la requête ci-dessus. Merci encore.
se débarrasser du "groupe par" partie. Cela devrait résoudre votre problème. P>
Merci beaucoup, c'était le problème. Sa fonctionne bien maintenant
Changement de votre étiquette sur
Joindre code> carfusion-table code> n'est pas clair.@Michael vous aviez raison. Merci, ça va. Savez-vous comment puis-je trier les utilisateurs? Je suppose que je dois utiliser la commande par ici.