2013-10-21 34 views
0

我在SQL Server 2008 R2数据库中有两个表。我想创建一个视图,其中包含Table1中的所有列,并接收附加的名为“Photo_Exist”的附加列,如果Table1中存在ID,则分配“1”或“True”。将值设置为其ID存在于另一个表中的行上的列

表1: ID中,col1,col2的,...,科隆

表2: Linked_ID

查看: ID中,col1,col2的,...,科隆,Photo_Exist

在此先感谢!

亚历

回答

2

试试这个

SELECT *, 
     CASE WHEN EXISTS (SELECT * FROM Table2 AS T2 WHERE T2.Linked_ID=T1.ID) 
      THEN 1 
      ELSE 0 
     END AS Photo_Exist 
FROM Table1 AS T1 
1

创建使用此查询的视图。这应该有帮助

select table1.*, case when table2.linked_id is null then 0 else 1 end as Photo_exist 
    from table1 left outer join table2 on table1.id =table2.linked_id 
+1

+1但是你要记住,如果有对应的''中Table1' ID'多个'Linked_ID'在'Table2'比你的结果与同一组得到几行' ID'。 –

1

我喜欢使用子查询这种类型的东西。

select 
    t1.*, 
    Photo_Exists = 
     case 
      when t2.Linked_ID is null then 0 
      else 1 
     end 
from Table1 t1 
    left join 
    (
     select distinct 
      Linked_ID 
     from Table2 
    ) t2 on t1.ID = t2.Linked_ID 
相关问题