sql >> Base de Datos >  >> RDS >> Mysql

Únase solo para filas específicas donde el valor coincide con una variable

parece que solo necesita un LEFT JOIN a las otras tablas, ya que parece que desea ver a todos los estudiantes del primer grupo, independientemente de cualquier oferta de trabajo/interés.

Si es así... asegúrese de que las tablas de "Interés" y "Ofertas" tengan un índice en el que la ID del estudiante sea un índice de un solo elemento o el primero en un índice compuesto.

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

Para evitar resultados "NULOS" en el interés, el interés y la oferta del empleador, puede envolverlos en una llamada a Coalesce() como (para las tres columnas en la combinación izquierda)

COALESCE( JI.Employer_Interest, " " ) Employer_Interest