我刚刚观看了 Rob Farley 的非常有趣的视频“为简化而设计”,我想知道视频中给出的 4 条连接删除规则是否也适用于 PostgreSQL。
如果视图正在执行不执行的联接:
- 添加任何列
- 消除行
- 重复行
- 引入空值
对于不需要它们的查询,是否会忽略这些连接。或者它只是一个 SQL Server 的东西?
我刚刚观看了 Rob Farley 的非常有趣的视频“为简化而设计”,我想知道视频中给出的 4 条连接删除规则是否也适用于 PostgreSQL。
如果视图正在执行不执行的联接:
对于不需要它们的查询,是否会忽略这些连接。或者它只是一个 SQL Server 的东西?
在PostgreSQL“Whats new in 9.0”中有一个关于此功能的示例。如果优化器检测到连接不能添加任何额外的行,它将被删除。如果因为未选择请求的列而不需要连接,则 PostgreSQL 功能不会从视图中删除连接。
此外,该功能目前仅限于
LEFT JOIN
s(版本 9.4)。这可能会在未来的版本中改变。