2018년 2월 20일 화요일

SQL_JOIN


7. ‘이광훈 학생’과 같은 학과의 학생들에 대한 평균 몸무게보다 몸무게가 적게 나가는 학생들의 이름, 몸무게, 소속학과이름, 담당교수 이름을 조회하시오.

옳은 답
SQL>
SELECT s.name,s.weight,d.dname,p.name
FROM student s
INNER JOIN department d ON s.deptno=d.deptno
LEFT OUTER JOIN professor p ON s.profno=p.profno WHERE weight <
(
 SELECT AVG(weight)
 FROM student
 WHERE deptno =
    (SELECT deptno FROM student WHERE name='이광훈')
);



SELECT s.name,s.weight,d.dname,p.name
FROM student s
INNER JOIN department d ON s.deptno=d.deptno
LEFT OUTER JOIN professor p ON s.profno=p.profno AND weight <
(
 SELECT AVG(weight)
 FROM student
 WHERE deptno =
    (SELECT deptno FROM student WHERE name='이광훈')
);

여기서의
INNER JOIN department d ON s.deptno=d.deptno
LEFT OUTER JOIN professor p ON s.profno=p.profno AND weight <
s.deptno=d.deptno 는 조인조건임(다른 테이블 두 개를 공통된 필드로 묶어준다.는뜻)







9. 학과 이름에공학’이라는 단어를 포함하고 있는 학과에 재학중인 학생의 학번, 학과이름, 학년, 학생이름을 조회하시오
SQL>
SELECT s.studno,d.dname,s.grade,s.name
FROM student s INNER JOIN department d
ON s.deptno=d.deptno
WHERE d.dname LIKE ‘%공학%’;

댓글 없음:

댓글 쓰기