2010-04-19 2 views
0

내가보기를 만들 싶습니다 두 테이블SQL보기 창조

Table FOO 
FooUniqueID| Year| Name| Worth| 
--------------------------- 
1   2008 Bob 23.00 
2   2009 Bob 40200 

Table Bar 
BarUniqueID | Name | Value 
----------------------- 
1aBc   Year 2009 

있습니다. 올해는 하위 쿼리를 사용하지 않고

select value from Bar where name = year 

동일입니다 FOO에 이르기까지 모든 것을 선택합니다 .

고맙습니다.

+0

는 SQL 서버 2008은 당신이 생각하는 환경 –

+2

입니다 질문을 업데이트하고 태그를 다시 지정하고 업데이트를 덧글 – Kronass

+0

과 같이 추가하지 마세요. http://stackoverflow.com/questions/227037/can-i-get-better-performance-using-a-join-or-using-exists – Glennular

답변

0
SELECT 
    FooUniqueID, Year, Name, Worth 
FROM 
    FOO 
JOIN 
    BAR on FOO.Year = BAR.Value 
WHERE 
    BAR.Name = 'Year' 
1

어떤 종류의 프로그램이 작동하는지에 따라 다릅니다. 이것은 일부 SQL 특성에 대해 작동 할 것이라고 믿습니다. 나는이 혼자의 VIEW을 만들어 많은 지점이 있다고 생각하지 않습니다

select value from FOO, Bar where FOO.year = Bar.year 
+0

은 SQL Server 2008에서 작동해야합니다. –

1
create view baz as 
select f.FooUniqueID, f.Year, f.Name as FooName, f.Worth, 
    b.BarUniqueID, b.Name as BarName, b.Value 
from foo f 
inner join bar b on f.Year = b.Value and b.name = 'Year' 
1

, 그것은 사소한 가입 :

SELECT FOO.* 
FROM Bar 
JOIN FOO ON FOO.Year=Bar.Value 
WHERE Bar.Name='Year'; 
+0

보기에 더 많은 데이터가 포함되어 있지만 문제는 근본적인 문제로 제한됩니다. 다른 테이블의 구성 값을 가져 오는보기를 작성해야합니다. –

+0

+1, 그건 여전히 사소한 것입니다, 너무 많은보기를 중첩에 조심해, 성능이 내려갑니다 –

관련 문제