시스템 내에서 생성되는 물건, 판매, 고객 계정 등을 추적하는 다양한 테이블이 있습니다. 모두 테이블에 시간을 생성했습니다. 아무 일 없을 때이 일을 건너 않지만 일을 얻을 수MySQL - 하루에 여러 테이블 계산
+--------------------+----------+
| date(created_time) | count(*) |
+--------------------+----------+
| 2012-10-12 | 15 |
| 2012-10-13 | 4 |
: 같은 출력을 생성
select date(created_time), count(*) from customers group by date(created_time)
: 나는 다음과 같은 쿼리를 하루 단위로 다음 중 하나를 요약 할 수 있습니다 .
그러나 내가하고 싶은 것 같은 것을 생산하고, 한 번에 여러 테이블 같은 일을 생성 할 수 있습니다 : 나는 각 테이블에 대해 개별적으로 쿼리를 실행하고 손으로 그들과 합류 할 수
+--------------------+--------------+------------------+
| date(created_time) | count(sales) | count(customers) |
+--------------------+--------------+------------------+
| 2012-10-12 | 15 | 1 |
| 2012-10-13 | 4 | 3 |
을하지만, 0 일을 건너 뛰면 참여가 어려워집니다.
하나의 mysql 쿼리에서이 작업을 수행 할 수있는 방법이 있습니까?
모든 테이블이 동일한 구조를 가지고 있습니까? date (created_time)에 외부 조인을 할 수 있습니다 : a.date (created_time), a.count (*), b.count (*)를 선택합니다. a.date (created_time), b.date (created_time)에 의해 date (created_time) 그룹. 참고 :이 date() 함수를 사용하면 SLOW 쿼리를 만들 수 있습니다. 얼마나 많은 데이터가 있습니까? – Melanie
그들은 모두 created_time 열을가집니다. 그렇지 않으면 서로 완전히 다릅니다. 가장 큰 것은 170,000 개의 행과 빠른 속도입니다. –
저는 쿼리 효율성에 대한 전문가는 아니지만 위의 제안에서 date() 함수를 사용하면 속도가 느려질 수 있음을 알고 있습니다. 아마도 누군가가 계산 된 열을 사용하여 날짜를 저장하는 효능에 대해 논평 할 수 있습니까? – Melanie