[英]MySQL join not working
我有以下查詢。
SELECT DISTINCT tbl_event_entries.race_nbr,
tbl_event_entries.class_id,
tbl_event_entries.racer_id,
tbl_event_entries.heat_position,
tbl_event_classes.combine
FROM tbl_event_entries
LEFT JOIN tbl_event_classes
ON tbl_event_entries.class_id = tbl_event_classes.class_id
WHERE tbl_event_entries.event_id = :event_id
ORDER BY tbl_event_entries.race_nbr, tbl_event_entries.heat_position
該查詢中的數據是:
event_class_id event_id class_id combine
822 20160706MAS577d098260173 1 2
823 20160706MAS577d098260173 2 8888
entry_id event_id racer_id class_id
8318 20160706MAS577d098260173 238 1
8319 20160706MAS577d098260173 1184 2
我從此查詢中獲得的輸出:
race_nbr class_id racer_id heat_position combine
1 1 238 1 2
1 1 238 1 NULL
2 2 1184 1 8888
2 2 1184 1 NULL
我可以將查詢限制為在組合中不顯示“ NULL”,但我並不總是在該字段中有數據。 但是,我永遠都不會看到像這樣的重復行。
我應該只看到兩行:
race_nbr class_id racer_id heat_position combine
1 1 238 1 2
2 2 1184 1 8888
誰能看到錯誤?
我已經嘗試了LEFT JOIN,JOIN和字段的一些不同更改。 沒有看到為什么這會返回無效數據。
答:使用聚合...
SELECT e.race_nbr
, e.class_id
, e.racer_id
, e.heat_position
, MAX(c.combine) combine
FROM tbl_event_entries e
LEFT
JOIN tbl_event_classes c
ON c.class_id = e.class_id
WHERE e.event_id = :event_id
GROUP
BY e.race_nbr
, e.class_id
, e.racer_id
, e.heat_position
ORDER
BY e.race_nbr
, e.heat_position
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.