MySQL 加入无效

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