如果我使用UNION从数据库中生成多个SELECT,则认为是一个查询?或多个查询?
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
这被视为单个查询吗?或2个查询?
(我每小时的查询次数有限,我想优化我的代码)
谢谢!
答案 0 :(得分:5)
来自文档:
SQL UNION运算符用于组合2个或更多的结果集 SELECT语句。它删除各种之间的重复行 SELECT语句。
所以你的2选择被合并为一个查询;)
答案 1 :(得分:2)
这是其他人指出的一个查询。
在编码到项目中时,我会对此方法保持警惕,除非这两个表具有非常相似的数据,原因如下。
A)table1
选择的列数必须与table2
选择的列数相匹配。您可以通过添加NULL
列来解决此问题。
B)您从第二个选择中丢失了列名。
C)无法分辨哪些行来自哪个表格。您可以通过为每个选择添加静态类型列来解决此问题。
D)很容易错过一些东西并使用错误的数据。
作为补充说明。您正在使用UNION
,它会从结果中删除欺骗,尽管您可能不太可能在两个表中都有相同的数据;如果您尝试减少总查询量,则您看起来在概念上需要UNION ALL
。