Mysql
 sql >> Database >  >> RDS >> Mysql

Unisci solo per righe specifiche in cui il valore corrisponde a una variabile

sembra che tu abbia solo bisogno di un UNISCI A SINISTRA agli altri tavoli poiché sembra che tu voglia vedere tutti gli studenti del primo set indipendentemente da qualsiasi offerta/interesse di lavoro.

In tal caso... assicurati che entrambe le tabelle "Interessi" e "Offerte" abbiano un indice in cui l'ID studente è un indice a elemento singolo o il primo in quello di un indice composto.

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

Per evitare che "NULL" risulti nell'interesse, nell'interesse e nell'offerta del datore di lavoro, puoi racchiuderli in una chiamata Coalesce() come (per tutte e tre le colonne sul join sinistro)

COALESCE( JI.Employer_Interest, " " ) Employer_Interest