2011-10-05 73 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