티스토리 뷰
과제하면서 MySQL을 쓰다가 발견한 에러와 해결방법...!
error 1242 : subquery returns more than 1 row
쿼리문에서 return값이 하나 이상이어서 발생하는 에러인데 결론부터 말하자면 'any' 라고 붙여주면 된다.
(X) select * from student where stdid=(select stdid from advisor where instid='201201003');
(O) select * from student where stdid=any(select stdid from advisor where instid='201201003');
위와같은 다이어그램에서 advisor라는 관계형 테이블을 만들었는데
잘못만듬... '학생' 이라는 테이블에 instid를 외부키로 가져와서 테이블에 추가해주면 될것 같기도 한데 advisor라는 테이블에 각각 instid와 stdid를 외부키로 하는 테이블을 만들어 버렸다. 이미 데이터까지 다 넣어버린 상태라 그냥 하기로 하고 진행 ㅡㅡ;;
다음과 같은 테이블에서 instid가 '201201003' 인 조건만 찾아낸 뒤 매칭되는 학번을 이용해서 학생테이블로부터
정보를 가지고 오고 싶었다.
instid 201201003와 매칭되어 있는 stdid는
총 3개이다.
학생 테이블로 부터 stdid와 매칭되는 정보를 가져오기 위해 처음에 사용한 쿼리문은
select * from student where stdid=(select stdid from advisor where instid='201201003');
이었고, advisor 테이블로 부터 instid가 201201003인 stdid를 가져와 student 테이블의 조건으로 넣어주는 것이다.
하지만 여기에서 error 1242 : subquery returns more than 1 row 에러가 발생...
열심히 구글링을 해본 결과!!
ANY 를 넣어주면 된단다!!
select * from student where stdid=any(select stdid from advisor where instid='201201003');
any를 넣어주고 다시한번 검색을 해보면
잘 나오는걸 확인할 수 있었다.
'Computer Science > 기타' 카테고리의 다른 글
글자수 세는 프로그램 '몇글자' v.1.1 (0) | 2014.08.11 |
---|---|
ubuntu OpenGL 설치 및 컴파일 하기 (0) | 2012.11.28 |
ubuntu에서 gtk 컴파일시 fatal error: gtk/gtk.h: No such file or directory 문제 해결 (0) | 2012.11.28 |
ubuntu에서 gtk 설치 및 Hello world 프로그램 돌려보기 (1) | 2012.11.28 |
- Total
- Today
- Yesterday
- 증여세셀프신고
- 워치어베인
- 워치어베인 2nd edition
- Chromecast
- 커플여권지갑
- 가죽여권지갑
- 미성년자녀증여세
- 글로벌자동차유리
- 글자수 세는 프로그램
- 에어팟안드로이드
- 워치어베인 2nd 에디션
- LGG6
- 크롬캐스트
- 커플여권케이스
- 크롬캐스트2
- 유리스톤칩
- chromecast2
- 무료복원
- 오드컨테이너
- LG워치
- 가죽여권케이스
- 여권케이스
- LGPay
- 글자수 세기 프로그램
- 앞유리돌빵
- LG워치 어베인
- 자동차유리스톤칩
- AR Stickers
- LG페이
- AR스티커
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |