안녕하세요. 간단한 쿼리를 작성하고 있는데 며칠째 막혀서 질문드립니다.
데이터가 들어 있는 테이블 A
idx | int(11) | NO | PRI | auto_increment | |
reg_time | datetime | NO | |||
val | text | NO |
------------------------------------------------
시간 값 조인을 위한 테이블 B
val text No
val | text | NO |
|
------------------
이렇게 있다고하면, 아래와 같이 쿼리를 짜봣습니다.
select ifnull(substr(a.reg_time,1,10),0) as gdates,
ifnull(substr(a.reg_time,12,2),0) as times, ifnull(round(avg(a.val),2),0) as val
from info_radio as a
right outer join hour_table as b
on substr(a.reg_time,12,2)=b.val
and substr(a.reg_time,1,10) between'2016-09-21'and '2016-09-22'
group by b.val
order by substr(a.reg_time,1,10),substr(a.reg_time,12,2) asc;
원하는 결과 값은 아래와 같습니다.
만약 info_radio에 해당 일자에 대한 정보가 없으면 전부 0으로 출력 되게 하고 싶은데
ex)
0 | 0 | 0.00 |
0 | 0 | 0.00 |
0 | 0 | 0.00 |
0 | 0 | 0.00 |
0 | 0 | 0.00 |
제가 짠 쿼리는 오직 하나의 일자만 정상적으로 동작을 합니다. 1일 이상 조회하게 되면 info_radio에 있는 정보만 끄집어 옵니다.
대체 어떻게 해야할지 몰라 선배님들의 조언을 듣고 싶어 글올립니다.