2016-08-22 4 views
-2

쿼리에 대한 문제를 해결하는 데 도움이 필요합니다. 나는 두 개의 선택 문 출력에 가입하려면 :mysql에 두 개의 테이블을 결합해야합니다.

select extract(year from createdDate) as year, 
     count(extract(year from createdDate)) as count 
from table 
where to_user_id= 322 
group by extract(year from createdDate); 

1과 출력

Year Count 
2014 18 
2015 117 
2016 9 

, 2 쿼리를

select count(extract(year from createdDate)) as count 
from table 
where userId=322 
group by extract(year from createdDate); 

및 출력

Count 
    18 
    110 
    11 

하나의 테이블에이 두 테이블을 추가하고 싶습니다. 나는 내가이 일을 해결에 노력 2.

쿼리에서 쿼리 1 to_user_id하지만 userId를 사용하는 출력의 유형,

Year Count Count 
2014 18  18 
2015 117 110 
2016 9  11 

참고 싶지만 출력 값을 반복있어 . 누구나 해결책을 알고 계십니까?

+0

동일한 쿼리에 대해 두 쿼리의 카운트가 다른 이유는 무엇입니까? – Barmar

+0

빌드 쿼리에 테이블 구조를 게시 할 수 있습니다. –

+0

다른 테이블에서 쿼리하고 있습니까? 두 쿼리에 동일한 테이블 이름이 있습니다. – Barmar

답변

3

하위 쿼리로 작성하고 함께 가입하십시오.

SELECT a.year, a.count AS t_user_count, b.count AS user_count 
FROM (select YEAR(create_date) AS year, COUNT(*) AS count 
     FROM table 
     WHERE to_user_id = 322 
     GROUP BY year) AS a 
JOIN (SELECT YEAR(create_date) AS year, COUNT(*) AS count 
     FROM table 
     WHERE user_id = 322 
     GROUP BY year) AS b 
ON a.year = b.year 
+0

매력처럼 작동합니다. @barmar 감사합니다. – Darshan

관련 문제