Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在条件来自第三个表的情况下显示左连接结果?_Mysql_Sql_Join_Left Join - Fatal编程技术网

Mysql 如何在条件来自第三个表的情况下显示左连接结果?

Mysql 如何在条件来自第三个表的情况下显示左连接结果?,mysql,sql,join,left-join,Mysql,Sql,Join,Left Join,我在一个名为racing的数据库中有以下表格: 比赛 种族识别码 会议记录 休息时间 头衔 会合 会议记录 会议日期 结果 结果标识 种族识别码 位置 马 我的任务是查询今天所有的比赛冠军+出局次数,如果有获胜的马,则查询获胜的马。 我得到了一个提示,我必须使用一个左连接来处理这个问题,我设法让左连接工作,但是我没有找到一种方法将事情绑定到某个日期(meeting_date)。所以这给了我所有比赛结果中获胜的马: SELECT r.title, r.off_time, rlt.hor

我在一个名为racing的数据库中有以下表格:

比赛

  • 种族识别码
  • 会议记录
  • 休息时间
  • 头衔
会合

  • 会议记录
  • 会议日期
结果

  • 结果标识
  • 种族识别码
  • 位置
我的任务是查询今天所有的比赛冠军+出局次数,如果有获胜的马,则查询获胜的马。

我得到了一个提示,我必须使用一个左连接来处理这个问题,我设法让左连接工作,但是我没有找到一种方法将事情绑定到某个日期(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),否则留下一个空值?

您将需要内部连接到
会议
表:

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()