J'ai trois tables dont j'ai besoin pour joindre ensemble et obtenir une combinaison de résultats. J'ai essayé d'utiliser les jointures gauche/droite mais elles ne donnent pas les résultats souhaités.Comment avoir plusieurs tables avec plusieurs jointures
Par exemple:
Tableau 1 - PERSONNEL
id name
1 John
2 Fred
Tableau 2 - STAFFMOBILERIGHTS
id staffid mobilerightsid rights
--this table is empty--
Tableau 3 - MOBILERIGHTS
id rightname
1 Login
2 View
et ce que je dois est-ce comme th résultat e ...
id name id staffid mobilerightsid rights id rightname
1 John null null null null 1 login
1 John null null null null 2 View
2 Fred null null null null 1 login
2 Fred null null null null 2 View
J'ai essayé les suivantes:
SELECT *
FROM STAFFMOBILERIGHTS SMR
RIGHT JOIN STAFF STA
ON STA.STAFFID = SMR.STAFFID
RIGHT JOIN MOBILERIGHTS MRI
ON MRI.ID = SMR.MOBILERIGHTSID
Mais cela ne retourne deux lignes comme suit:
id name id staffid mobilerightsid rights id rightname
null null null null null null 1 login
null null null null null null 2 View
Peut-ce que je suis en train de se faire réaliser et si oui, comment?
Merci
Oui STAFFMOBILERIGHTS permet efficacement un grand nombre à plusieurs rapports entre le personnel et MOBILERIGHTS mais il ne sera une ligne STAFFMOBILERIGHTS si un droit a été accordé. À l'heure actuelle, aucun droit n'a été accordé, donc il n'y a pas de rang dans STAFFMOBILERIGHTS. L'exécution de votre SQL ne renvoie aucune ligne. – williamsdb
@williamsdb. Ahh, désolé oui - beaucoup plus clair ce que vous essayez de faire maintenant. Voir ma modification. – PaulG
Bingo! Merci beaucoup c'est parfait. Maintenant, je pars pour voir si je peux comprendre ce que vous avez fait. Merci pour votre aide. Neil – williamsdb