안녕하세요. 웹페이지를 만드는중 DB 쪽 문제가 발생 했습니다 ... 차근차근 공부를 해야겠지만 일단 급한 불부터 끄기위해 질문 드립니다.
![](http://thumb1.photo.ndrive.naver.com/12804332762?type=m3&setidc=2&filelink=KeFheM7D2BQavB4v53BtIFYlYL1l7/eWIn+0bojsgHWGc4wmlIqbjXTMzChPsoxLBg==&authtoken=iO0Wa3SnnTPKrkttz111OwI=)
테이블이 다음과 같이 구성되어 있고요
SELECT * FROM user u WHERE u.pid > 11 ORDER BY create_date LIMIT 0, 5
타음 쿼리를 통해 다음과 같은 결과가 나왔습니다.
![](http://thumb2.photo.ndrive.naver.com/12804348969?type=m3&setidc=2&filelink=KeFheM7D2BQavB4v53BtIOAuamPh3Jxs6sTOVD2G+a/HEcQQGmTXEryosU8RF91tBg==&authtoken=DRpCMEcETzDLSx5CHy0tOgI=)
결과값의 pid 를 통해 upload 테이블의 post_pid 와 file_server 테이블의 file_server_addr 까지 조회를 해야하는 상황입니다.
조건은 다음과 같습니다.
user.pid == user_info.user_pid
user_info.upload_pid == upload.pid
upload.file_server_pid = file_server.pid
일단 정신없이 JOIN 을 걸면 원하는 결과는 나오는데 추후에 성능에 엄청난 영향이 있을것 같아서요 다른 방법이 있는지 여쭤봅니다.
일단 조인을 사용한 쿼리입니다
SELECT uu.id, up.posts_pid, fs.server_addr FROM (SELECT * FROM user u WHERE u.pid > 11 ORDER BY create_date LIMIT 0, 5) uu
LEFT OUTER JOIN user_info ui ON uu.pid = ui.user_pid
LEFT OUTER JOIN upload up ON ui.upload_pid = up.pid
LEFT OUTER JOIN file_server fs ON up.file_server_pid = fs.pid;
결과 :
![](http://thumb1.photo.ndrive.naver.com/12804369174?type=m3&setidc=2&filelink=KeFheM7D2BQavB4v53BtIPqaLyTQs6z/7yWjoaE5W/a46rD/ae+jUzbK0hoTufRIBg==&authtoken=rZcMZMkWiC/pPz+jtY/ePgI=)
긴글 읽어주셔서 감사합니다.
|