2013-01-15 4 views
1

두 데이터베이스 사이의 타임 스탬프를 계산하려고하지만 디자인상의 결함이 없어 타임 스탬프가 겹칩니다. 그들은 특정 날짜에 대해 별도의 수를 생산 있도록 일어날 것 무엇보기의 두 데이터베이스 사이의 오프셋을 가진 카운트 타임 스탬프

SELECT date(time + INTERVAL 8 HOUR) as day, COUNT(DISTINCT comment) 
FROM news.data 
GROUP BY day 
    UNION ALL 
SELECT date(time + INTERVAL 8 HOUR) as day, COUNT(DISTINCT comment) 
FROM`news-backup`.`data` 
GROUP BY day 
ORDER BY year(day) desc, day(day) DESC 
LIMIT 20 

은 두 데이터베이스의 범위 내에서 약간의 타임 스탬프가 있습니다. 그래서 그 몇 가지 제한이있다, 그래서 내가보기에 필요, 내가 원하는 무엇

EX: 
date  count 
2013-1-15 10 
2013-1-15 13 
2013-1-14 8 
2013-1-13 15 

여기

EX: 
date  count 
2013-1-15 23 
2013-1-14 8 
2013-1-13 15 

가 키커입니다 뉴스와 뉴스 백업에서 오늘을위한 수를 줄 것이다 (하위 쿼리는 허용되지 않음). 생각? DB간에 발생하는 데이터 덤프 순서를 변경할 수 없습니다.

+0

확실하지 않지만 VIEW에 서브 쿼리를 넣으려고하면 오류가 발생합니다. "SQL ERROR 1349 : ciews select에서 from 절이 suquerry를 포함합니다" – rodling

+0

죄송합니다. . . 문서는 오도 된 것입니다. 한 곳에서는 하위 쿼리가 허용되고 다른 곳에서는 허용되지 않는다고합니다. –

답변

0

뷰에 하위 쿼리를 추가 할 수는 없지만 뷰에 뷰를 넣을 수는 있습니다.

그래서 :

create view1 as 
    SELECT date(time + INTERVAL 8 HOUR) as day, 'current' as which, COUNT(DISTINCT comment) as cnt 
    FROM news.data 
    GROUP BY day 
     UNION ALL 
    SELECT date(time + INTERVAL 8 HOUR) as day, 'backup' as which, COUNT(DISTINCT comment) as cnt 
    FROM`news-backup`.`data` 
    GROUP BY day, which 

내가 그들을 결합하는 당신 논리가 무엇인지 확실하지 않다 :

create view2 as 
    select day, max(cnt) -- sum(cnt)? prefer current or backup? 
    from view1 
    group by day 
    ORDER BY day desc 

하위 쿼리를 금지 문서는 here입니다. "SELECT 문에 포함 할 수 없습니다"를 검색하십시오. 당신은 모든 날짜의 테이블이있는 경우

다음 "황당"SQL이 작동 할 수 있습니다 :이 버전은 가정한다

select c.date, 
     coalesce((select count(distinct comment) from news.data where date(time + INTERVAL 8 HOUR) = c.date), 
       (select count(distinct comment) from news_backup.data where date(time + INTERVAL 8 HOUR) = c.date) 
       ) as NumComments 
from calendar c 

당신이 "새로운"첫째, 다음 백업을 할 수 있습니다. 합계를 원할 경우 추가 할 것입니다.

+1

@eggyal. . . "SELECT 문은 FROM 절에 하위 쿼리를 포함 할 수 없습니다."라는 메시지가 더 자세히 읽습니다. 잘못된 문서. –

+0

두 번보기없이 다른 가능한 솔루션? – rodling

+0

은 쉽게 해결할 수없는 것처럼 보입니다. – rodling

관련 문제