database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29911 게시물 읽기
No. 29911
left outer join 에 관한 질문입니다.
작성자
하하
작성일
2011-02-16 18:03
조회수
9,863

안녕하세요.

left outer join은 오른쪽의 컬럼이 없더라도 왼쪽을 기준으로 null값을 해준다고 배웠는데요.

 

SELECT a.date, SUM(b.score) AS total_score, SUM(b.avg) AS total_avg
FROM ymd a
LEFT OUTER JOIN report b ON a.date = b.date
WHERE a.date BETWEEN '20110101' AND '20110131'
GROUP BY a.date

이렇게 날짜별로 리포트의 점수, 평균값을 sum해서 뿌려주는 쿼리를 작성하려고 하는데

ymd라는 테이블에는 19**년 1월 1일부터 거의 무한대의 날짜까지

id       date

--------------------

1    20110101

2    20110102

......

31 20110131

 

이런식으로 값이 들어가 있어서

report에 20110122일자의 데이터가 없더라도 score와 avg값이 null로 찍히게 하고싶습니다.

저렇게만 보면 되야하는게 맞는데 왜 report 테이블을 select로 한번 더 묶어줘야 제가 원하는 쿼리가 나오는지 모르겠습니다.

(저 상태로는 20110121  200 300 / 20110123 100 200 이런식으로 20110122일자의 값은 아예나오지도 않습니다.)

해결책은 아는데 왜 저 쿼리로는 안되는지 모르겠습니다.

꼭 알려주세요.

 

 

이 글에 대한 댓글이 총 1건 있습니다.

이상하네요. 저는 잘 됩니다.

 


mysql> select * from ymd;

+------+----------+

| id   | date     |

+------+----------+

|    1 | 20110101 |

|    2 | 20110102 |

|    3 | 20110103 |

+------+----------+

3 rows in set (0.00 sec)


mysql> select * from report;

+-------+----------+

| score | dt       |

+-------+----------+

|   100 | 20110101 |

|    50 | 20110101 |

|    75 | 20110103 |

+-------+----------+

3 rows in set (0.00 sec)


mysql> select a.date, sum(b.score) as tot, avg(b.score) as avg from ymd a left outer join report b on a.date=b.dt where a.date between '20110101' and '20110131' group by a.date;

+----------+------+---------+

| date     | tot  | avg     |

+----------+------+---------+

| 20110101 |  150 | 75.0000 |

| 20110102 | NULL |    NULL |

| 20110103 |   75 | 75.0000 |

+----------+------+---------+

3 rows in set (0.00 sec)

 

 

박현우(lqez)님이 2011-02-17 17:13에 작성한 댓글입니다.
이 댓글은 2011-02-17 17:13에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
29915날짜 테이블 생성!! [1]
ㅇㅇ
2011-02-18
15735
29914저장된 Table에 특정 칼럼 값만 추출하는 쿼리... ㅠ [1]
김혁진
2011-02-18
8455
29913count 쿼리 속도가 너무 차이가 나서요... [3]
이승예
2011-02-17
10985
29911left outer join 에 관한 질문입니다. [1]
하하
2011-02-16
9863
29910array가 값옆에 붙어나오는 문제
JS
2011-02-14
8086
29909조건에 해당하지 않을경우 0 이나 null로 나타내기 [1]
김동명
2011-02-11
8276
29908JSP 랑 ORACLE / PHP랑 MYSQL질문입니다. [1]
제로나인
2011-02-11
7991
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다