创建mysql视图时是不是应该在SELECT语句中引用多个表?
Posted
技术标签:
【中文标题】创建mysql视图时是不是应该在SELECT语句中引用多个表?【英文标题】:Should multiple tables be referenced in the SELECT statement when creating a mysql view?创建mysql视图时是否应该在SELECT语句中引用多个表? 【发布时间】:2011-06-05 10:45:10 【问题描述】:http://www.mysqltutorial.org/create-sql-updatable-views.aspx
上面的这篇文章陈述了以下内容:
SELECT 语句不能引用 到不止一张桌子。这意味着它 不得包含超过一张表 在 FROM 子句中,JOIN 中的其他表 语句,或 UNION 与其他表。
这是真的吗?为什么? 您如何查询两个相关的表(通过视图),而不在每个查询字符串中使用连接?
【问题讨论】:
这篇文章专门讨论了updateable
的浏览量,而不仅仅是浏览量。
【参考方案1】:
该页面是关于 可更新 视图的,并且能够通过视图更新基础表的条件意味着您必须对视图,以便 mysql 能够将您的更新映射回基础表。
如果您只想从视图中读取而不需要使用它更新基础表,您可以在视图定义中使用连接、UNION
s 等从多个表中进行选择。
【讨论】:
【参考方案2】:仅适用于可更新视图。如果您不能在一个视图中链接超过 1 个表,那么整个视图的观点将毫无意义:)
【讨论】:
【参考方案3】:当您创建视图时,您已经在组合表格。他们想说的是,一般来说,您不应该有一个 SELECT 语句来连接视图和表。尽管您可以这样做,但这并不是最佳做法。视图的重点是创建一个表,其中包含您定期调用的多个表中的字段。对于多个表,视图比在每个 SELECT 语句上连接表更有效。
【讨论】:
谢谢,我想我不太明白他们想说什么 谢谢,Johan,你被贴上了白痴的标签……我说的没有错。这是我的错,没有在他所指的文章的背景下写作,而是在他的问题的背景下写作。以上是关于创建mysql视图时是不是应该在SELECT语句中引用多个表?的主要内容,如果未能解决你的问题,请参考以下文章