select count(*) as total FROM ( SELECT * FROM database1
.orders WHERE number LIKE "11111111111111111" UNION ALL SELECT * FROMdatabase2
.orders WHERE number LIKE "11111111111111111" ) AS b
但我收到错误:
使用的 SELECT 语句具有不同的列数
因为跑SELECT * FROM database2
.orders WHERE number LIKE "11111111111111111"
给我的结果为空。
如何将其与查询合并,因为用查询来帮助我处理分页
感谢您的帮助!
只需在之前进行聚合即可union all
:
select sum(cnt) as total
FROM ((SELECT count(*) as cnt
FROM database1.orders
WHERE number LIKE '11111111111111111'
)
UNION ALL
(SELECT count(*) as cnt
FROM database2.orders
WHERE number LIKE '11111111111111111'
)
) t;
注意我将字符串分隔符更改为单引号而不是双引号。最好对字符串和日期常量使用单引号(仅此而已)。
顺便说一句,您还可以使用联接来执行此操作:
select o1.cnt1, o2.cnt1, (o1.cnt1 + o2.cnt1) as total
FROM (SELECT count(*) as cnt1
FROM database1.orders
WHERE number LIKE '11111111111111111'
) o1 cross join
(SELECT count(*) as cnt2
FROM database2.orders
WHERE number LIKE '11111111111111111'
) o2;
这使得获取两个数据库的单独计数变得更加容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)