티스토리 뷰
반응형
두개의 테이블을 조인해서 select 함수를 만들수 있다. 이 경우 1:1 혹은 1:N 의 관계를 가지게 된다.
1:1 의 경우에는 left join 이나 normal 조인을 해서 사용하나 동일한 결과를 가지게 된다. 이번 포스트에서 다룰 내용은 1:N의 경우에 N의 항목을 전부 보여주는 것이 아니라 최대값/최소값 과 같이 하나의 결과만 보여지게 하는 것이다.
SELECT s.id, s.firstname, s.lastname, sd.grade
FROM Student s
LEFT OUTER JOIN StudentGrades sd ON s.id=sd.student_id
이렇게 작성된 경우, 한 학생에 대해서 여러개의 성적 정보를 가지고 있는 경우, 모든 성적을 보여주게된다.
한 학생에 대해서 최고 성적만을 보여주고 싶다면 다음과 같이 sql 을 작성해 볼수 있다.
SELECT s.id, s.first, s.last, sd.grade
FROM Student s
LEFT OUTER JOIN StudentGrades sd ON s.id=sd.student_id
AND sd.record_id = (SELECT MAX(record_id) FROM StudentGrades
WHERE student_id=sd.student_id)
결과는 하나의 학생은 하나의 최고 성적값을 가지게 된다.
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 디스크 사용량
- 프로젝트 생성
- HOME/END
- 메시지 전송
- amaztools
- Karabiner-Elements
- du 명령어
- df 명령어
- python slack
- 파이썬
- django
- angular
- 미밴드
- python message
- http 요청
- win10
- win7
- 팀 소통
- END key
- vscode
- Python
- webhook
- HOME key
- venv
- 미밴드4
- cmd창
- channel oauth
- 장고
- cmd실행
- slack api
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함