2013-08-22 3 views
-1

아래와 같은 쿼리를 작성할 수 있습니까? 내부 쿼리의 'column4은'테이블 이름이고, 나는 외부 쿼리다른 테이블의 값인 테이블에서 선택하는 쿼리

select x.column1, x.column2, x.column3, d.column5 
    from (select 
     a.column1, a.column2, a.column3, b.column4 
    from 
     table1 a inner join table2 b on a.priKeyCol = b.prikeyCol 
    )x 
    inner join column4 d on x.column2 = d.priColKey 
+0

동적 SQL을 사용하여보아야 할 것처럼 들립니다. – Taryn

답변

0

당신이 할 수있는 것은 당신이 가능하게 가입 할 수있는 모든 테이블에 앉아 뷰를 생성하는 것입니다 그것을 사용하려고합니다.

create view UnifiedTables 
as 
select *,'Table1' as TableName from table1 
union all 
select *,'Table2' as TableName from table2 
union all 
select *,'Table3' as TableName from table3 

메인 쿼리에이 UnifiedTables에 가입 할 수 있습니다.

select t1.c1 t1c1, t1.c2 t1c2, t1.c3 t1c3, 
     ut.c1 utc1, ut.c2 utc2, ut.c3 utc3 
from table1 t1 
join UnifiedTables ut on t1.c4 = ut.TableName 

그러나이 문제는 더 큰 규모로 문제를 해결할 수없는 해킹입니다.

+0

이것은 내가 찾고있는 것이 아닙니다. 테이블에서 선택하는 방법을 찾고 있는데 테이블 이름은 다른 테이블의 값입니다. – fn79

+0

@ fn79 알아. 내가 무엇을 제공하고 있다고 생각하니? –

관련 문제