윈도우 우분투에서 MYSQL 실행
리눅스 우분투 관리자 권한으로 실행
sudo service mysql start
mysql 접속
sudo mysql -u root -p
mysql 접속해제
exit;
JOIN을 활용한 문제 풀이(westagram)
문제
'a'라는 사용자가 좋아요를 누른 게시물 중에서 '무엇인가?' 라는 단어가 포함된 게시물만 출력
westagram이라는 데이터베이스 안에 users, posts, likes라는 테이블을 작성해두었다.
users : 사용자의 이름
posts : 누가 어떤 포스트를 작성 + 포스트의 내용
likes : 누가 어떤 포스트에 좋아요를 눌렀는지
문제를 풀기 전 한글로 출력해야할 데이터들을 하나씩 정리해본다.
1. column을 나열한다.
2. posts 테이블의 작성자 이름을 알아야 한다.
3. 좋아요를 누른 posts 테이블을 나열한다. (likes.post_id 3,4,5,6)
4. 좋아요를 누른 user의 이름을 출력한다.
5. user의 이름 중 'a' 라는 사용자만 출력한다.
6. content 중 '무엇인가?'를 포함하는 게시글만 출력한다.
1. column을 나열한다.
like_user 값은 가장 밑단에서 작업할 예정이므로 임시로 'a'를 넣어주었다.
from절은 column에 도출해야 하는 내용이 상대적으로 많이 담긴 테이블을 설정한다.
(반드시 정답은 아니지만 원하는 값을 출력하기에 수월하므로 추천한다.)
posts p 라고 입력할 경우 posts = p라는 의미가 담겨있으므로 좀 더 가독성과 심미성있는 코드를 짤 수 있다.
2. posts 테이블의 작성자 이름을 출력한다.
작성자의 이름을 알기 위해 users의 id와 posts의 user_id를 조인한다.
3. 좋아요를 누른 posts 테이블을 나열한다. (likes.post_id 3,4,5,6)
likes 테이블을 통해 좋아요가 눌린 게시글만 출력한다.
likes의 post_id를 보면 3(3번),4,5,6 id의 게시글인 것을 확인할 수 있다.
4. 좋아요를 누른 user의 이름을 출력한다.
column에 임시값으로 넣어주었던 'a'를 likeuser로 수정하고 좋아요를 누른 user의 이름을 알기 위해 likes.user_id와 조인한다.
5. user의 이름 중 'a' 라는 사용자만 출력한다.
6. content 중 '무엇인가?'를 포함하는 게시글만 출력한다.
join에 where절로 조건을 충족시킨다.
조건이 2개가 모두 충족해야 하므로 and를 써준다.
content에 '무엇인가?'가 포함된 게시글만 보기 위해서 like '%' 를 사용하는데, 문자를 포함하는 차이는 아래와 같다.
like 'i%' : i로 시작하는 값
like '%i' : i로 끝나는 값
like '%i%' : i가 포함된 모든 값
'Services > Tool' 카테고리의 다른 글
[Eclipse] 이클립스에 코틀린 셋팅하기 (0) | 2024.05.02 |
---|---|
[Eclipse] 이클립스 설치하기(for macOS) (0) | 2024.05.02 |
[Eclipse] 이클립스 버전 업데이트 (0) | 2024.05.02 |
[Docker] 도커의 개념 및 설치(+도커 컴포즈 활용법) (1) | 2023.12.27 |
[Supabase] Local 개발환경 셋팅 (0) | 2023.10.06 |