2012-02-24 3 views
4

DISTINCT 테이블의 값 하나를 가져 오려고합니다. 그러나이 열은 id을 통해 다른 테이블의 INNER JOINED입니다.SQL 조인 된 테이블에 대한 고유 값

열에 DISTINCT을 사용하려고 시도하면 DISTINCT도 고유 식별자 ID를 고려하기 때문에 동일한 결과가 생성됩니다. 이것에 대한 주위에 그냥 합류 테이블에서 열의 DISTINCT 값을 얻을 어떤 조치가 있습니까 ???

EG. 대신 DISTINCT의 BY 그룹에 던지는

SELECT val1, b.val2, val3 
    FROM TABLE 1 
    JOIN (SELECT DISTINCT val2 
      FROM TABLE 2) AS b ON val1 = b.val2 
+0

어떤 데이터베이스가 있습니까? –

+0

메신저 ASP.NET SQL 쿼리 – karlstackoverflow

+0

아니요, SELECT DISTINCT val2 FROM TABLE 2에서도 ID를 고려하지 않습니다. 해당 하위 쿼리 만 실행하면 원하는 DISTINCT 값만 표시됩니다. 결과를 어떻게 보이게할까요? –

답변

0

내 솔루션을 제공한다 : 가입하고 난 모든 중첩되지 값 스루 중첩 된 별개를 사용하여 종료 (모든 20+)는 MIN (x) 주위에 싸여 야했으며, 그 값이 그다지 문제가되지 않았으므로 하나의 고유 한 값만 반환되었다는 것을 알았습니다.

5

시도 :

SELECT val1 
    , b.val2 
    , val3 
    FROM TABLE 1 
    JOIN (SELECT val2 
      FROM TABLE 2 GROUP BY val2) AS b ON val1 = b.val2 
+0

이유는 모르겠지만 GROUP BY는 항상 오류를 발생시킵니다. 쿼리 작성기를 통해이 작업을 수행하는 Visual Studio 2010 – karlstackoverflow

+0

그것은 말한다 : 'x'열은 집계 함수 또는 GROUP BY 절에 포함되어 있지 않기 때문에 선택 목록에서 유효하지 않습니다. – karlstackoverflow

+3

결과는 동일합니다. - GROUP BY val2는 단지 고유/고유 한'val2' 값을 반환 할 것입니다. –

관련 문제