【问题标题】: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的浏览量,而不仅仅是浏览量。

标签: mysql database views updatable-views


【解决方案1】:

该页面是关于 可更新 视图的,并且能够通过视图更新基础表的条件意味着您必须对视图,以便 mysql 能够将您的更新映射回基础表。

如果您只想从视图中读取而不需要使用它更新基础表,您可以在视图定义中使用连接、UNIONs 等从多个表中进行选择。

【讨论】:

    【解决方案2】:

    仅适用于可更新视图。如果您不能在一个视图中链接超过 1 个表,那么整个视图的观点将毫无意义:)

    【讨论】:

      【解决方案3】:

      当您创建视图时,您已经在组合表格。他们想说的是,一般来说,您不应该有一个 SELECT 语句来连接视图和表。尽管您可以这样做,但这并不是最佳做法。视图的重点是创建一个表,其中包含您定期调用的多个表中的字段。对于多个表,视图比在每个 SELECT 语句上连接表更有效。

      【讨论】:

      • 谢谢,我想我不太明白他们想说什么
      • 谢谢,Johan,你被贴上了白痴的标签……我说的没有错。这是我的错,没有在他所指的文章的背景下写作,而是在他的问题的背景下写作。
      猜你喜欢
      • 1970-01-01
      • 2014-01-20
      • 2013-09-09
      • 1970-01-01
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      相关资源
      最近更新 更多