0

2つのテーブルがあり、どちらにもカウントしたい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を両方のテーブルに表示できます)。

これは1つのクエリで可能ですか?

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 を取るクエリを使用してから、一意の値を SELECT することができます。

于 2012-06-01T15:38:35.523 に答える