0
votes

Rejoindre donne une mauvaise réponse

J'ai 2 tables " event_volunteer_activity strong>" dans lequel je stocke le volontaire qui a appliqué et " volontaire_attendance strong>" qui a la présence respective du volontaire xxx pré>

maintenant quand je cours p> xxx pré>

je reçois p> xxx pré>

quand je vais un droit ou à gauche rejoindre, je reçois la réponse ci-dessus. Où je devrais commencer depuis Voluntee_attendance Strong> n'a pas de présence prise pour Activalid Strong> = 42 P>

 VolunteerId    VolunteeId  ActivityId
      2491             2491       40
      2491             null       42


1 commentaires

Je vous exhorte vraiment à commencer à utiliser d'utiliser des casse-tête et des pauses de ligne lorsque vous écrivez le code. Une seule ligne de code très longue n'est lisible à personne.


4 Réponses :


0
votes

Vous décrivez un joint gauche : xxx

Notez que les alias de table facilitent la requête d'écrire et de lire.


0 commentaires

0
votes

Inclure acticitéid strong> dans la liaison et la modification de GAUCHE rejoindre STRY>

SELECT V.VolunteerId, E.ActivityId
  FROM Event_Volunteer_Activity E
  LEFT JOIN Voluntee_Attendance V

  ON E.VolunteerId = V.VolunteerId
  AND E.activityid = V.ActivityId

WHERE E.VolunteerId = 2491;


0 commentaires

0
votes

S'il vous plaît, essayez avec la requête ci-dessous où nous ajoutons deux conditions dans la table de jointure et alias de table pour la simplicité du code: xxx


0 commentaires

0
votes
 SELECT E.VolunteerId, V.VolunteeId, E.ActivityId
 FROM Event_Volunteer_Activity E LEFT JOIN 
 Voluntee_Attendance V
 ON E.VolunteerId = V.VolunteeId
 WHERE E.VolunteerId = 2491;

0 commentaires