select count(*) from ((select count(*) from employee )
union ALL (select count(*) from events)) as total
这是我的查询我试图通过给出两个查询来找到ttoal记录 这个查询
`select count(*) from employee`
给出300记录和
select count(*) from events
当我尝试计算总记录时给出100,然后它总是给出2条记录可以任何一个告诉我如何通过给出查询来计算总记录
答案 0 :(得分:1)
您可以直接将两个计数加在一起,不需要UNION
查询:
SELECT (SELECT COUNT(*) FROM employee) + (SELECT COUNT(*) FROM events) AS total
请注意,这将起作用,因为您使用了UNION ALL
,它保留了查询每一侧的所有记录。如果您想使用UNION
,那么它将如下所示:
SELECT COUNT(*) AS total
FROM
(
SELECT * FROM employee
UNION ALL
SELECT * FROM events
) t
但是这只有在两个表具有相同数量(和理想类型)列的情况下才有效。在任何情况下我都可能选择第一个选项。
答案 1 :(得分:0)
select
count(*) result.union_total
from (
(select 1 from table1)
union all
(select 1 from table2)
) result
答案 2 :(得分:0)
使用此命令:
SELECT
COUNT(*) AS total
FROM
(SELECT * FROM db_domains where id=695
UNION ALL
SELECT * FROM db_domains where id=694
) AS A;
结果:总数:2(根据我的sql表)
请确保:
1.使用的SELECT语句具有相同的列数。
否则您将收到此错误: 错误代码:1222。使用的SELECT语句具有不同的列数
2.每个派生表必须有自己的别名。 否则你会收到这个错误: 错误代码:1248。每个派生表必须有自己的别名
在MYSQL Workbench中查看快照。 (我在工作台上测试过):
在上一个快照中:您可以看到结果是:1106