안녕하세요. 웹페이지를 만드는중 DB 쪽 문제가 발생 했습니다 ... 차근차근 공부를 해야겠지만 일단 급한 불부터 끄기위해 질문 드립니다.
테이블이 다음과 같이 구성되어 있고요
SELECT * FROM user u WHERE u.pid > 11 ORDER BY create_date LIMIT 0, 5
타음 쿼리를 통해 다음과 같은 결과가 나왔습니다.
결과값의 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;
결과 :
긴글 읽어주셔서 감사합니다.
|