我有两个表,两列都有一个我想要计算的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)。
这可以在一个查询中使用吗?
答案 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的查询,然后选择唯一值。