sql >> Databasteknik >  >> RDS >> Mysql

Gå endast med för specifika rader där värdet matchar en variabel

det låter som att du bara behöver en LEFT JOIN till de andra tabellerna eftersom det verkar som att du vill se alla studenter från den första uppsättningen oavsett jobberbjudande/intresse.

Om så är fallet... se till att både "Ränta"- och "Erbjudanden"-tabellerna har ett index där student-ID antingen är ett enda elementindex eller först i ett sammansatt 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

För att förhindra "NULL"-resultat i arbetsgivarens intresse, intresse och erbjudande, kan du slå in dem i ett Coalesce()-anrop som (för alla tre kolumnerna på vänster join)

COALESCE( JI.Employer_Interest, " " ) Employer_Interest


  1. MySQL Error 1153 - Fick ett paket större än 'max_allowed_packet' byte

  2. Hur ringer man lagrad procedur i en vy?

  3. 911/112:En nödsamtalstjänstdatamodell

  4. Frågor om typer i MySQL