2012-06-01 5 views
0

나는 두 개의 테이블을 가지고 있는데, 두 테이블 모두에 계산할 device_id 열이 있습니다.전체적으로 MySQL의 두 테이블에서 고유 한 수

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
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 

이것은 트릭을 수행하는 것으로 보입니다.

0

두 테이블의 UNION을 취한 쿼리를 사용하여 고유 한 값을 SELECT 할 수 있습니다.

+1

select count (distinct T.ID) from (secondT에서 firstT union select id의 ID 선택) T. union 동작 때문에 distinct가 필요하지 않습니다. – danihp

+0

내 스키마가 약간 불안해졌습니다. 다시 이야기 할 수 있습니까? – mootymoots

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 

또는 다른 것과 같이 ... 스키마를 가져올 수 없으므로 완전히 검증 할 수 없습니다.

+0

더 많은 대표자가 될 수 있도록 스키마를 편집했습니다 ... – mootymoots

관련 문제