免责声明:我认为自己是数据库新手,我刚开始创建数据库视图。我本可以做一些Google搜索来找到答案,但我甚至不知道要使用哪些关键字 - 所以请耐心等待。
请考虑以下视图脚本:
CREATE VIEW dbo.My_First_View
AS
SELECT
mt.*,
t1.another_id,
t2.value_i_need
FROM
my_table mt
LEFT JOIN
table_1 t1 ON t1.record_id = mt.record_id
LEFT JOIN
table_2 t2 ON t2.record_id = t1.another_id
GO
为了澄清上面的脚本,我最感兴趣的是t2.value_i_need
列中的值。但是为了检索它,我需要首先将值传递给table_1
以获得一些record_id
,然后将其传递给table_2
以获得所需的值。我希望我在这里有意义。
当然,这似乎不起作用。这样做的正确方法是什么?
答案 0 :(得分:0)
我发现您的CREATE VIEW
声明没有任何问题,只是您正在执行LEFT JOIN
,因此t2.value_i_need
可能会导致NULL
如果没有匹配。您可以考虑使用COALESCE()
,例如
CREATE VIEW dbo.My_First_View
AS
SELECT mt.*,
t1.another_id,
COALESCE(t2.value_i_need, some_default_value)
FROM my_table mt
LEFT JOIN table_1 t1
ON t1.record_id = mt.record_id
LEFT JOIN table_2 t2
ON t2.record_id = t1.another_id
GO