【问题标题】:UNION SELECTs - loop? or single query?UNION SELECTs - 循环?还是单个查询?
【发布时间】:2014-09-09 14:32:37
【问题描述】:

如果我使用 UNION 从数据库中进行多个 SELECT,是否被视为一个查询?还是多个查询?

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

这是否被视为单个查询?还是 2 个查询?

(我每小时的查询数量有限,我想优化我的代码)

谢谢!

【问题讨论】:

  • 单个查询
  • 所有查询,但 3 个不同的语句

标签: php mysql sql mysqli


【解决方案1】:

来自文档:

SQL UNION 运算符用于组合 2 个或更多的结果集 选择语句。它删除了各种之间的重复行 SELECT 语句。

因此,您的 2 个选择合并为一个查询;)

http://www.techonthenet.com/sql/union.php

【讨论】:

    【解决方案2】:

    正如其他人指出的那样,这是一个查询。

    在将代码编码到项目中时,我会警惕这种方法,除非两个表具有非常相似的数据,原因如下..

    A) table1 选择的列数必须与table2 选择的列数匹配。您可以通过添加NULL 列来解决此问题。

    B) 您从第二次选择中丢失了列名。

    C) 开箱即用无法判断哪些行来自哪个表。您可以通过向每个选择添加一个静态类型列来解决此问题。

    D) 很容易遗漏某些内容并使用错误的数据。

    作为附加说明。您正在使用UNION,它将从结果中删除重复数据,尽管您可能不太可能在两个表中拥有相同的数据;如果您试图减少总查询量,那么您在概念上似乎想要UNION ALL

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多