簡體   English   中英

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM