mysql 쿼리 관련된 질문입니다.
조회수 608회
디비는 mysql
을 이용하고 있는데 SQL
초보여서 쿼리를 어떻게 짜야할지 감이 안옵니다.
문제 상황
우선 3개의 테이블이 있습니다.
user
uid | int
thing
cid | int
uid | int
content | varchar
mark
mid | int
cid | int
uid | int
조금 간략하게 그리긴 했는데 설명을 드리자면 user는 사용자를 뜻하고 thing 은 게시물로 cid
와 작성자의 아이디인 uid
를 저장합니다. mark 는 북마크 형식으로 mid
는 고유의 아이디, cid
는 북마크를 한 게시물의 아이디, uid
는 북마크를 한 유저의 아이디 입니다.
하고싶은 동작
uid
를 가지고 이 유저가 북마크한 게시물의 내용을 가져오고 싶습니다.
입출력
입력
uid
출력
[
{
cid : ~~~,
content: ~~~
},{
cid : ~~~,
content: ~~~
},{
cid : ~~~,
content: ~~~
}
]
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
문제상황 자체는 굉장히 전형적인 사례인데요,
thing
과mark
를 조인한 테이블을mark.uid
기준으로 걸러낸 다음에thing
안의 컬럼들만 골라 가져오면 될 것 같습니다.select c.* from thing as c left join mark as m on m.cid = c.cid where m.uid = (원하는UID);
온라인 SQL 데모를 짜보았으니 참고하세요.
댓글 입력