0

我有两个表,都有一个我想要计算的 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 可以出现在两个表中)。

这可能在一个查询中吗?

4

3 回答 3

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

或类似...由于我手头没有架构,我无法完全验证它。

于 2012-06-01T15:39:52.387 回答
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

这似乎可以解决问题。

于 2012-06-01T16:57:02.310 回答
0

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

于 2012-06-01T15:38:35.523 回答