繁体   English   中英

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

[英]How to display LEFT JOIN results with a condition coming from a third table?

我在名为racing的数据库中有下表:

种族

  • race_id
  • MEETING_ID
  • OFF_TIME
  • 标题

会议

  • MEETING_ID
  • meeting_date

结果

  • result_id
  • race_id
  • 位置

我已经被赋予执行查询的任务, 该查询将获取所有今天的比赛头衔+非比赛时间,如果有的话,还会赢得一匹冠军马。

提示我必须使用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值)?

您需要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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM