人
这是我的小问题。 我有三个表: a_names_1 b_names_2 c_names_3 它们的结构相同。它们都有两项:名称和使用
是否有任何 QUERY 可以运行以从所有这三个表中获取并计算所有 'used'=1 的 'name'。
我试过这个,但是没用:
(SELECT COUNT(*) 'name' from a_names_1) UNION
(SELECT COUNT(*) 'name' from a_names_2) UNION
(SELECT COUNT(*) 'name' from a_names_3) WHERE `used`=1
我正在为 MySQL 使用 PHPMyAdmin。
任何帮助将不胜感激..提前致谢
最佳答案
此查询从所有具有 used=1
的表中输出不同 names
的计数
select count(distinct name)
from
(
select name,used from a_names_1 where used=1
union all
select name,used from a_names_2 where used=1
union all
select name,used from a_names_3 where used=1
) t
如果您需要对所有表中每个 NAME 的所有 USED 求和,并且只输出 used=1 的 SUM,那么:
select count(*) from
(
select name, SUM(used)
from
(
select name,used from a_names_1
union all
select name,used from a_names_2
union all
select name,used from a_names_3
) t
GROUP BY name
HAVING SUM(used)=1
) t1
关于数据库;同时获取3个表的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519482/