2013-11-24 2 views
0

모든 플레이어에 한 번만 표시되도록 JOIN을 제한 할 수 있습니까? LIMIT 1LIMIT 1 on join

SELECT name FROM players p 
INNER JOIN player_frags pd ON pd.lasthit = p.name 
OR pd.mostdamage = p.name 
LIMIT 10 

그리고 아마도 그

+1

당신을 위해 DISTINCT 사용할 수 있습니까? – Adarsh

답변

0

두 가지 방법에 의해 lasthit 또는 mostdamage 질서의 가장 일반적인 값 찾기 :

SELECT DISTINCT name FROM players p 
INNER JOIN player_frags pd ON pd.lasthit = p.name 
OR pd.mostdamage = p.name 

또는

SELECT name FROM players p 
INNER JOIN player_frags pd ON pd.lasthit = p.name 
OR pd.mostdamage = p.name 
GROUP BY name; 
+0

'DISTINCT'는 함수가 아닙니다. 거기에 괄호를 쓸 필요가 없습니다. –

1
SELECT DISTINCT(name) FROM players p 
INNER JOIN player_frags pd ON pd.lasthit = p.name 
OR pd.mostdamage = p.name 
1

당신은 할 수 있습니다를 사용하십시오.

SELECT distinct name FROM players p 
INNER JOIN player_frags pd ON pd.lasthit = p.name 
OR pd.mostdamage = p.name 
0
SELECT name FROM players p 
INNER JOIN player_frags pd ON pd.lasthit = p.name 
OR pd.mostdamage = p.name 
GROUP BY p.name 
+0

distinct와 by by를 중복 사용합니다. –

0

내가 그렇지 않으면 다른 사람들이 답변이 더 정확, 당신이 먼저에 합류 원래 테이블 소형화 의미 생각 :

SELECT name FROM players p 
INNER JOIN (SELECT * 
      FROM player_frags pd 
      GROUP BY pd.lasthit, pd.mostdamage) AS newpd ON newpd.lasthit = p.name OR 
                  newpd.mostdamage = p.name 
LIMIT 10