안냐세여~ 거두절미하고..
도서관프로그램을 짜보고 있는데요. 간단히 요약하믄..
대출테이블(lend)의 한 레코드가 대출일,책번호,사용자 번호(userNo)가 들어간다고 하고,
사용자 테이블(user)은 사용자번호, 이름이 있다고 칩시다.
이제껏 책을 10권이상 빌려간 사람들의 이름을 뽑아낼려면.. 도대체 어떻게 하믄 되나요?
SELECT userNo,count(userNo) FROM lend GROUP BY userNo
이렇게 한다음 그 결과를 가지고(임시 테이블 temp 로 만든다치고.. 필드는 사용자번호no, 빌린회수count)
SELECT Name FROM user u, temp r WHERE u.no = r.no AND r.count > 10
이렇게 하믄되나요?
임시 테이블을 만들면 속도가 느리지 않을까요?
아님 SQL로 해결할 수 있나요? 아님 딴 방법이 있을까요?
고수님들의 관심어린 조언 부탁합니다.. 그럼..
> 안냐세여~ 거두절미하고..
>
> 도서관프로그램을 짜보고 있는데요. 간단히 요약하믄..
> 대출테이블(lend)의 한 레코드가 대출일,책번호,사용자 번호(userNo)가 들어간다고 하고,
> 사용자 테이블(user)은 사용자번호, 이름이 있다고 칩시다.
>
> 이제껏 책을 10권이상 빌려간 사람들의 이름을 뽑아낼려면.. 도대체 어떻게 하믄 되나요?
>
> SELECT userNo,count(userNo) FROM lend GROUP BY userNo
> 이렇게 한다음 그 결과를 가지고(임시 테이블 temp 로 만든다치고.. 필드는 사용자번호no, 빌린회수count)
> SELECT Name FROM user u, temp r WHERE u.no = r.no AND r.count > 10
> 이렇게 하믄되나요?
> 임시 테이블을 만들면 속도가 느리지 않을까요?
> 아님 SQL로 해결할 수 있나요? 아님 딴 방법이 있을까요?
>
> 고수님들의 관심어린 조언 부탁합니다.. 그럼..
>
위에서 표현한 SQL을 조합하면 되겠군요.(서브쿼리)
SELECT Name FROM user
WHERE no in (
SELECT userNo FROM lend
GROUP BY userNo
HAVING COUNT(*) > 10
)