블로그.지오닷컴

DB에서 서로 다른 테이블의 데이터를 한번에 불러오기 본문

노하우/웹서비스 개발

DB에서 서로 다른 테이블의 데이터를 한번에 불러오기

지오닷컴 2010. 11. 11. 02:18
최근 웹프로그램도 객체지향 형태로 코딩을 하니까 DB 설계도 객체 느낌을 살려서 코딩을 하는 것 같더라구요. 덕분에 유지보수를 하게 되면 종종 여러 테이블의 데이터를 동시에 불어와야 하는 경우가 있습니다. 간단한 MySQL 쿼리문으로 설명해 드리겠습니다.

SELECT a.uid, a.bid, a.id, a.subject, b.savename 
FROM `m12board` a left outer join `m13file` b on a.uid = b.id
WHERE a.`bid` = 6
ORDER BY a.`id` DESC LIMIT 0 , 10

위의 쿼리문은 MySQL에서 게시판 데이터가 있는 m12board 와 첨부한 파일 데이터가 있는 m13file 테이블에서 한번에 데이터를 불러오는 쿼리문 입니다. 쿼리문은 순서대로 풀어내면 아래와 같습니다.

01. SELECT 로 데이터를 가져올거라고 말합니다.
02. 그 뒤의 a.uid 부터 b.savename 까지는 가져올 데이터 레코드의 필드 입니다. a.uid 는 ㅁ라는 별명을 가진 테이블의 uid 라는 필드를 의미합니다.
03. FROM 은 불러올 테이블을 정하는 거지요? m12board 를 a 라는 별명으로 정하고 left outer join 으로 여겨에 추가로 m13file 이라는 테이블을 별명 b 로 추가한다고 했네요.
04. 그 위의 WHERE는 뭘 불러올껀지 정하는 건데 a 라고 별명을 붙인 테이블의 bid 필드가 6인 값을 가져온다는 뜻 입니다.
05. ORDER BY 는 많이 보셨죠? a 라는 별명 테이블의 id 라는 이름을 역순(DESC)으로 정렬하는데 10개만 가져오라고 했네요.

하나씩 풀어보면 참 쉽죠? 사실 이 글은 제가 저를 위해 쓰는 겁니다. 제가 자주 까먹어서요. 다음에 나눌 정보가 있으면 다시 찾아오겠습니다. ^^



Comments