我被赋予了将一些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
基本上,它加入了一个表格,其中包含了它所处的视图结果。我最初的想法是将其创建为第二个视图,但我的上司希望它在同一个视图中。无论如何,这可以使用子查询或变量来完成吗?
视图很大,所以我把它剪下来,希望它能说明我想要实现的目标。
答案 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 . . .