如何使用来自第三个表的条件显示LEFT JOIN结果?

时间:2014-07-07 09:23:18

标签: mysql sql join left-join

我在名为赛车的数据库中有以下表格:

RACE

  • race_id
  • MEETING_ID
  • OFF_TIME
  • 标题

MEETING

  • MEETING_ID
  • meeting_date

RESULT

  • result_id
  • race_id
  • 位置

我已经完成了一项任务,做一个今天获得所有比赛冠军+ off_times的查询以及如果有一个获胜的马。

我得到了一个提示,我必须使用LEFT JOIN来处理这个问题,我设法让左连接起作用,但是我找不到将事物绑定到特定日期(meeting_date)的方法。所以这给了我所有比赛结果的胜利马:

SELECT r.title, r.off_time, rlt.horse 
    FROM racing.race r
        LEFT JOIN racing.result rlt ON r.race_id=rlt.race_id;

我如何根据今天的比赛结果过滤这些比赛,只有在比赛发生时,获胜的马(位置= 1),否则留下一个NULL值?

1 个答案:

答案 0 :(得分:1)

您需要INNER JOIN到meeting表:

SELECT r.title, r.off_time, rlt.horse 
FROM racing.race r
  INNER JOIN racing.meeting m ON r.meeting_id = m.meeting_id
  LEFT JOIN racing.result rlt ON r.race_id = rlt.race_id AND rlt.position = 1
WHERE m.meeting_date = CURDATE()