2011-09-21 58 views
2

這是一個相當具體的,所以我希望能夠快速解決。左連接,如何從右邊指定1個結果?

我在每個球隊的排行榜中都有一個結果。在我的球隊表中,我爲每支球隊獲得了幾項結果(每場比賽一項結果以支持球隊發展歷史)。

我想在排行榜上顯示每個團隊一次,並將teamID替換爲strName。問題是,我的左連接給了我每個球隊結果的一個記錄;我只想要一個記錄。

SELECT * , a.strName AS teamName 
FROM bb_leaderboards l 
LEFT JOIN bb_teams a ON (l.teamID = a.ID) 
WHERE l.season =8 
AND l.division =1 
ORDER BY l.division DESC , points DESC , wins DESC , l.TDdiff DESC 
LIMIT 0 , 30 

我需要怎麼做才能得到1:1的輸出?

+1

如果它的1:1關係,您的數據必須反映這一點。您無法獲得SQL語句來修復您的錯誤數據。如果有一個l.teamID存在很多a.ID,那麼沒有這樣做的有效方法 –

+0

所以我不能在聯接部分將'limit'限制爲1個結果?我在strTeam的主要選擇上嘗試了'group by',但數據並不正確:/ – Chelmet

回答

1

您可以改爲SELECT DISTINCT,但您必須縮小選擇範圍。所以:

SELECT DISTINCT l.*, a.strName AS teamName 
... 

這應該過濾出重複。

+0

感謝您的回答 - 我太新了,無法回覆您,對不起。 – Chelmet