Maison > Questions et réponses > le corps du texte
Tout d'abord, je ne trouve pas de nom approprié pour la question, si quelqu'un peut trouver un meilleur nom, je lui serais très reconnaissant de le modifier. Je suis nouveau sur SQL et j'ai la question suivante : j'ai deux tables comme suit
Membre -> Nom, UID (clé primaire), SupervisorUID. WorkPlace -> WP_UID (clé primaire), Nom, SupervisorUID.
Je dois créer une requête qui renvoie les noms des membres travaillant dans WorkPlace 'X' et les noms de leurs supérieurs.
J'ai essayé d'utiliser des jointures internes mais je n'ai pas pu obtenir le résultat souhaité. La question principale est de savoir comment puis-je sélectionner par nom WorkPlace et obtenir le nom du membre et le nom du supérieur.
Supervisor est également membre, donc WorkPlace.SupervisorUID doit correspondre à Member.UID
SELECT Member.Name, Y INNER JOIN WorkPlace on WorkPlace.SupervisorUID = Member.UID WHERE WorkPlace.Name = 'France'
Je dois trouver quoi mettre sur Y.
Je dois trouver comment trouver l'uid qui correspond à l'uid de ce superviseur et obtenir le nom en obtenant l'uid sur le lieu de travail, puis en accédant à la table des membres.
Member Jeremy 123 421 Jack 421 421
WorkPlace 1 France 421
Je souhaite retourner le formulaire suivant,
Jeremy Jack
P粉0716263642023-09-11 10:50:30
Je pense que vous devez le faire Member
中添加WP_UID
作为一列。我不确定mysql
的语法是否相同,但是如果你在Member
中添加WP_UID
, le code suivant fonctionnera dans MS SQL Server :
SELECT M1.Name, M2.Name FROM Member AS M1 INNER JOIN WorkPlace AS WP on WP.WP_UID = M1.WP_UID INNER JOIN Member AS M2 on M2.UID = M1.SupervisorUID WHERE WP.Name = 'France' AND M1.UID <> M1.SupervisorUID
J'ai ajouté M1.UID<>M1.SupervisorUID
pour que le superviseur ne soit pas affiché.
Vous pouvez également partir de Member
中删除SupervisorUID
et utiliser le code suivant :
SELECT M1.Name, M2.Name FROM Member AS M1 INNER JOIN WorkPlace AS WP on WP.WP_UID = M1.WP_UID INNER JOIN Member AS M2 on M2.UID = WP.SupervisorUID WHERE WP.Name = 'France' AND M1.UID <> WP.SupervisorUID