使用IF语句的MYSQL查询

时间:2011-10-05 23:52:05

标签: php mysql sql

有点麻烦,我怎么能改变这个mysql查询,这样如果member_results表中有行,它将运行下面的查询,但如果没有,那么几乎没有SUMS()运行下面的查询与member_results表的连接。我猜它可以用mysql中的IF语句来完成我真的不知道如何使用下面的查询来实现。

非常感谢任何帮助。

$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");

1 个答案:

答案 0 :(得分:3)

只需将Join member_results r替换为Left Join member_results r即可。如果没有结果,你应该得到总和的NULL。