SQL视图创建

时间:2010-04-19 16:41:45

标签: sql sql-server-2008 views

我有两张桌子

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

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

我想创建一个视图。 这将从年份相等的FOO中选择所有内容

select value from Bar where name = year

不使用子查询。

谢谢

4 个答案:

答案 0 :(得分:1)

这取决于什么样的程序在起作用。我认为这适用于某些SQL风格。

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

答案 1 :(得分: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'

答案 2 :(得分:1)

我认为单独创建一个VIEW并不重要,这是一个微不足道的联系:

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

答案 3 :(得分:0)

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