Mysql query using JOIN operator -


i have 2 tables: progressdate , project

columns of table progressdate:

**id      name      progress       enddate**   127     rishi     progress1     10/7/2015   128     sahil     progress2     11/5/2015   128     sahil     progress1     10/5/2015   127     rishi     progress3     1/8/2015   127     rishi     progress2     20/7/2015 

columns of table project:

**id      progress       file**   127     progress1       abc   128     progress2       xyz 

students have upload progress file project table.

i want print progress(ie progress1 or progress2 ) has minimum enddate student of id = 127 has not uploaded.

in case rishi (id = 127) has not uploaded progress2 , progress3, out of enddate of progress2 minimum, output should progress2

this i've tried:

    select pd.progress,enddate progressdate pd left join project p       on (pd.id=p.id)     pd.id="127"  , p.id="127"      , enddate = (         select min(enddate)         progressdate pd         left join project p on pd.progress=p.progress         p.progress null) 

does work you

select * progressdate p2 join (select id, min(enddate) edate progressdate p1 progress not in (select progress project p1.id=id) group id) tmp on p2.id=tmp.id , p2.enddate=tmp.edate 

Comments