使用该视图SQL Server连接表内部视图

时间:2017-10-05 09:52:47

标签: sql sql-server join

我被赋予了将一些SQL导入现有视图的任务。我已经意识到这段代码加入了需要添加的视图。

代码:

SELECT * 
FROM Customer(view) Cust 
LEFT join (
select * from People p
Where id <> '') cu
on Cust.no = p.no 

查看代码:

CREATE view Customer
as
SELECT * 
FROM Customer2(othertable) Cust2 
LEFT join (
select * from People p
Where id <> '') cu
on Cust(current view).no = p.no 

基本上,它加入了一个表格,其中包含了它所处的视图结果。我最初的想法是将其创建为第二个视图,但我的上司希望它在同一个视图中。无论如何,这可以使用子查询或变量来完成吗?

视图很大,所以我把它剪下来,希望它能说明我想要实现的目标。

1 个答案:

答案 0 :(得分:1)

首先,不需要为视图使用子查询:

CREATE VIEW Customer as
    SELECT . . .   -- you should list the columns explicitly  
    FROM Customer2 c2 LEFT JOIN
         People p
         ON p.id <> '' AND p.no = c2.no;

您提供的代码只会重复相同的连接。您可以轻松添加另一个联接:

    SELECT . . .   -- you should list the columns explicitly  
    FROM Customer2 c2 LEFT JOIN
         People p
         ON p.id <> '' AND p.no = c2.no LEFT JOIN
         othertable ot
         ON . . .