sql >> Database >  >> RDS >> Mysql

Join alleen voor specifieke rijen waar de waarde overeenkomt met een variabele

het klinkt alsof je alleen een LEFT JOIN nodig hebt voor de andere tafels, omdat het lijkt alsof je alle studenten van de eerste set wilt zien, ongeacht een jobaanbieding/interesse.

Zo ja... zorg ervoor dat zowel de tabellen "Interesse" als "Aanbiedingen" een index hebben waarbij de student-ID ofwel een index met één element is, of eerst in die van een samengestelde index.

select STRAIGHT_JOIN
      ORS.Student_ID,
      ORS.First_Name,
      ORS.Last_Name,
      ORS.Class,
      ORS.Rank,
      JI.Employer_Interest,
      JI.Interest,
      OFR.Employer_Offer
   from 
      OriginalResultSet ORS

         LEFT JOIN Interest JI
            ON ORS.Student_ID = JI.Student_ID
           AND JI.Employer_Interest = YourPHPVariable

            LEFT JOIN Offers OFR
               on JI.Student_ID = OFR.Student_ID
              AND JI.Employer_Interest = OFR.Employer_Offer

Om te voorkomen dat "NULL" resulteert in de interesse, interesse en aanbieding van de werkgever, kunt u ze in een Coalesce()-aanroep plaatsen, zoals (voor alle drie de kolommen op de linker join)

COALESCE( JI.Employer_Interest, " " ) Employer_Interest


  1. hoe de outputlengte van de sqlplus-kolom te vergroten?

  2. #1242 - Subquery retourneert meer dan 1 rij - mysql

  3. Is het mogelijk om de natuurlijke volgorde van kolommen in Postgres te wijzigen?

  4. Log alle zoekopdrachten in mysql