我在一个名为racing的数据库中有以下表格:
种族
种族
会议id
休息时间
标题
会议
会议id
会议日期
结果
结果id
种族
位置

我接到一个任务,要做一个查询,得到今天所有的比赛冠军+次,如果有一匹获胜的马。
我得到了一个提示,我必须使用左连接来处理这个问题,我设法让左连接工作,但是我没有找到一种方法来将事情绑定到某个日期(会议日期)。所以这让我赢得了所有比赛的结果:

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),否则保留空值?

最佳答案

您需要内部连接到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()

关于mysql - 如何显示条件来自第三张表的LEFT JOIN结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24607164/

10-11 17:25