MySQL中两个表的总体唯一计数

时间:2012-06-01 15:36:16

标签: mysql count

我有两个表,两列都有一个我想要计算的device_id列。出于演示的目的,架构如下所示:

Table 1: 'id', 'save_val', 'device_id_major'
Table 2: 'id', 'save_val', 'location', 'device_id_team'

表1可能有许多相同的“device_id_major”。

我基本上想要从两个表中获取唯一的device_id,然后从该结果集中获取唯一的device_id的计数(两个表中都可以出现相同的device_id)。

这可以在一个查询中使用吗?

3 个答案:

答案 0 :(得分:1)

select distinct aa.device_id, count(*) 
from(select distinct device_id from table1
union all
select distinct device_id from table2) as aa
group by device_id
order by device_id

或类似的东西......由于我没有手绘模式,我无法完全验证它。

答案 1 :(得分:1)

SELECT count(DISTINCT aa.id) 
FROM (SELECT DISTINCT major_id AS id FROM `major` 
UNION ALL
SELECT DISTINCT team_id AS id FROM `team`) 
AS aa

这似乎可以解决问题。

答案 2 :(得分:0)

您可以使用获取两个表的UNION的查询,然后选择唯一值。