집 >데이터 베이스 >MySQL 튜토리얼 >데이터가 누락된 경우에도 MySQL에서 월별 기록을 표시하는 방법은 무엇입니까?
데이터가 누락되어도 월간 기록을 표시하는 MySQL 쿼리
질문:
In a 사용자 테이블에서 월별 레코드를 검색해야 하는 상황에서는 특정 달에 대한 데이터가 누락될 수 있습니다. 이 문제를 어떻게 극복하고 데이터 포함 여부에 관계없이 모든 달을 표시할 수 있습니까?
답변:
다음을 포함하여 월별 사용자 기록을 검색하려면 항목이 없는 달의 경우 파생 테이블과 왼쪽 조인의 조합을 사용하여 솔루션을 구현할 수 있습니다.
SELECT COUNT(u.userID) AS total, m.month, YEAR(m.merge_date) AS year FROM ( SELECT '2013-01-01' AS merge_date UNION SELECT '2013-02-01' AS merge_date UNION SELECT '2013-03-01' AS merge_date UNION SELECT '2013-04-01' AS merge_date UNION SELECT '2013-05-01' AS merge_date UNION SELECT '2013-06-01' AS merge_date UNION SELECT '2013-07-01' AS merge_date UNION SELECT '2013-08-01' AS merge_date UNION SELECT '2013-09-01' AS merge_date UNION SELECT '2013-10-01' AS merge_date UNION SELECT '2013-11-01' AS merge_date UNION SELECT '2013-12-01' AS merge_date ) AS m LEFT JOIN users u ON MONTH(m.merge_date) = MONTH(u.userRegistredDate) AND YEAR(m.merge_date) = YEAR(u.userRegistredDate) GROUP BY m.merge_date ORDER BY 1+1;
설명:
왼쪽 조인을 사용하면 쿼리는 "users" 테이블과 파생 테이블 모두에서 데이터를 검색하여 결과에 해당 사용자 레코드가 없는 달을 포함하여 모든 달이 포함되도록 합니다. 이 방법은 특정 달의 데이터가 누락되는 상황을 효과적으로 처리합니다.
위 내용은 데이터가 누락된 경우에도 MySQL에서 월별 기록을 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!