2011-10-05 71 views
0

有點麻煩,我怎麼能改變這個mysql查詢,以便如果member_results表中有行,它將運行下面的查詢,但如果沒有,那麼幾乎在下面運行查詢SUMS()和與member_results表的連接。我猜測可以用mysql中的IF語句來完成我只是不知道如何使用下面的查詢來實現。帶IF語句的MYSQL查詢

任何幫助,非常感謝。

$result = mysql_query(" SELECT m.member_id, m.teamname, 
    Sum(Case When r.track_id = '$chosentrack' -1 AND r.track_id >= l.start_race 
    Then total_points Else 0 End) LastRacePoints, 
    Sum(Case When r.track_id <= '$chosentrack' -1 AND r.track_id >= l.start_race 
    Then total_points Else 0 End) TotalPoints 
FROM members m 
    Join members_leagues l 
    On l.member_id = m.member_id 
    Join member_results r 
    On r.member_id = m.member_id 
Where l.league_id = '$chosenleague' 
    Group By m.member_id 
    Order By TotalPoints Desc, LastRacePoints DESC, m.teamname Desc ") 
or die ("Error - could not display league"); 
+0

爲什麼不是PHP IF? –

回答

3

只需更換Join member_results rLeft Join member_results r,它應該工作。如果沒有結果,你應該得到NULL的NULL。

+0

完美!非常感謝。 – user970117