2014-07-07 29 views
1

我已經在數據庫中下表稱爲賽車如何顯示來自第三個表的條件的LEFT JOIN結果?

RACE

  • race_id
  • MEETING_ID
  • OFF_TIME
  • 標題

會議

  • MEETING_ID
  • meeting_date

RESULT

  • result_id
  • race_id
  • 位置

我已經得到一個任務做一個查詢,獲取所有的比賽冠軍+ off_times今天和一匹勝利的馬如果有一個。

我被給了一個提示,我必須使用左連接來處理這個問題,我設法讓左連接工作,但是我沒有找到一種方法將事物綁定到某個日期(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

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