我在SQL SERVER 2017中遇到有关视图的问题。
使用视图查询时,后面有多个基础表。除了SELECT子句中涉及的表外,其他表也被SQL Server逻辑读取,想知道为什么。
所以,这是场景:
/*******************************************************/
CREATE VIEW v_test
AS
SELECT
a.col1,
a.col2,
b.col3,
b.col4,
c.col5,
c.col6,
d.col7,
d.col8,
e.col9,
e.col10,
f.col11,
f.col12,
g.col13,
g.col14
FROM a
LEFT JOIN b
LEFT JOIN c
LEFT JOIN d
LEFT JOIN e
LEFT JOIN f
LEFT JOIN g
/*********************************************************/
SELECT col1, col2
FROM V_test
这是为什么?
根据所有联接条件,表A中的行可能会被消除或重复。因此,在大多数情况下,要知道应返回多少行,所有连接条件都必须进行评估。