블로그.지오닷컴
DB에서 서로 다른 테이블의 데이터를 한번에 불러오기 본문
최근 웹프로그램도 객체지향 형태로 코딩을 하니까 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개만 가져오라고 했네요.
하나씩 풀어보면 참 쉽죠? 사실 이 글은 제가 저를 위해 쓰는 겁니다. 제가 자주 까먹어서요. 다음에 나눌 정보가 있으면 다시 찾아오겠습니다. ^^
'노하우 > 웹서비스 개발' 카테고리의 다른 글
안드로이드나 아이폰일 경우 모바일 사이트로 이동하기 (0) | 2010.12.01 |
---|---|
XE 레이아웃 편집할 때 php 함수 바로 사용하기 (0) | 2010.11.25 |
화면 사이즈에 따라 다른 사이트로 접속하기 (0) | 2010.11.02 |
가볍고 빠른 윈도우7, 글자(한글)가 깨져 보일 때 이렇게 하세요! (3) | 2009.10.28 |
리눅스서버 주요 명령어 및 주요 경로, vi 주요 명령어 (0) | 2009.02.13 |
Comments