2010-05-03 2 views
0

id (기본 키) 및 text (null이 아님) 열이있는 데이터베이스에 숫자와 테이블 집합이 있습니다. 집합의 모든 숫자와 테이블의 관련 텍스트를 반환하는 쿼리를 만들고 싶습니다. 불행하게도 모든 숫자는 데이터베이스의 id 컬럼에 존재하지, 그래서 이것은 작동하지 않습니다 : 최고의 쿼리에서 텍스트로 null를 반환하는 것이 아닌 기존의 ID에 대한임시 테이블을 만들지 않고 데이터베이스에서 숫자 집합 사용

select id, text 
from table 
where id in (<set of numbers>) 

.

데이터베이스의 집합에서 임시 테이블을 먼저 만들지 않고 원하는 출력을 생성하는 방법이 있습니까?

사용중인 데이터베이스 엔진은 Microsoft SQL Server 2008 SP1이지만 데이터베이스 엔진을 사용하는 모든 솔루션에 관심이 있습니다.

+1

왜 임시 테이블을 만들지 않으려는 욕망이 있습니까? 그게 나에게 가장 확실한 해결책 인 것 같아. – RationalGeek

+0

@jkohlhepp; 반드시 최상의 해결책은 아닙니다. 예를 들어 오라클이 구체화 된 버전보다 나은 확장 성을 가진 순차 쿼리를 사용하여 순차적 인 숫자를 생성 할 수 있습니다. MS SQL에서 성능을위한 데이터가 없습니다. – Unreason

+0

이 요청에 대한 정확한 이유는 Unreason이 제공했기 때문에 자주 큰 테이블을 자주 만들지 않아야합니다. – Zizzencs

답변

0

솔루션은

  • MySQL이 임시 테이블없이 재귀 쿼리 (자세한 내용 here)
  • MS의 SQL로 매우 효율적으로 요청 할 수
  • 신탁 위를 할 수있는 좋은 방법이 없습니다 특정 높은 데이터베이스입니다 재귀 쿼리를 사용하여 수행 할 수 있지만 얼마나 효율적인지 모르겠다.

링크 된 기사를 확인하고 MS SQL 2008 년 지원 및 어떻게 수행 할 수 있습니다.

관련 문제