您好,我需要帮助,获取具有相同id的两个不同表的总行数,这是我的查询

SELECT COUNT( * )
FROM correccion a,
     acciones b
WHERE a.id_acp =  '361838021102014'
AND b.id_acp =  '361838021102014'

这个查询返回10,但是表correction有5行,表acciones有2行,应该是7,有什么想法吗?

最佳答案

你得到的答案是笛卡尔积,a中的每一行都与b中的每一行匹配,给你10(5x2)的答案。
你需要这样做:

SELECT a.a+b.b as count
FROM (
SELECT count(*) as a
from correccion
where id_acp = '361838021102014'
) a,
(
SELECT count(*) as b
from acciones
where id_acp = '361838021102014'
) b

08-25 22:00