数据库;同时获取3个表的信息

标签 mysql sql phpmyadmin

这是我的小问题。 我有三个表: 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/

相关文章:

c# - BackgroundWorker 在 foreach 循环期间从 DAL 返回值

mysql - 插入查询不起作用!这些值没有反射(reflect)在表格中

mysql - SQL - 计入多列

mysql - 使用字符串操作 ID 搜索数据库 ID 字段

mysql - MAMP - phpMyAdmin #2002 - 无法通过套接字 '/Applications/MAMP/tmp/mysql/mysql.sock' 连接到本地 MySQL 服务器

MySQL,索引和 "Lock wait timeout exceeded"

mysql - 表 '#sql-5f8_9c' 已满

sql - UNION到特定领域

mysql - Magento 1.9 从 phpMyAdmin 更改基本图像

mysql - phpMyAdmin INSERT 上的警告 #1366 即使使用 BEFORE INSERT TRIGGER 代码来解决它。自然的?