Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Join nur für bestimmte Zeilen, in denen der Wert mit einer Variablen übereinstimmt

Es hört sich so an, als bräuchten Sie nur einen LEFT JOIN zu den anderen Tabellen, da Sie anscheinend alle Studenten aus dem ersten Satz sehen möchten, unabhängig von Jobangeboten/Interessen.

Wenn ja... stellen Sie sicher, dass sowohl die Tabellen "Zinsen" als auch "Angebote" einen Index haben, bei dem die Studenten-ID entweder ein Einzelelementindex ist oder zuerst in einem zusammengesetzten 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

Um zu verhindern, dass „NULL“-Ergebnisse in Arbeitgeberinteresse, Interesse und Angebot enthalten sind, können Sie sie in einen Coalesce()-Aufruf einschließen, z. B. (für alle drei Spalten bei der linken Verknüpfung)

COALESCE( JI.Employer_Interest, " " ) Employer_Interest