Wecode - Project 3 (부트캠프)/Project 3 독학

sql Join만 따로

JBS 12 2023. 10. 17. 22:19

아래 내용 과제 

 

[SQL복습 ] 과제

foundation 때 대충 했던 [MySQL로 Database 만들기] 1. DDL, DML 사용 (ERD 연결) 이후 프로젝크 3차 하면서 sql 공부하면서 채우게 된 [SQL복습 ] 과제 https://pm-developer-justdoit.tistory.com/70 Foundation 2 과제 - sns posti

pm-developer-justdoit.tistory.com

join 개념 참고 

 

SQL 복습 - DATA 검색, 조회, 정렬, 필터링, 페이지네이션 ; SELECT, INNER/LEFT JOIN, GROUP BY

*select: 데이터 조회 (전체 목록 페이지 : [전체 데이터 조회] select * from posts [특정 열 조회] select title, content, post_id from posts where post_id= 1 [검색] select title, name, content from posts where content like 'who%' [필

pm-developer-justdoit.tistory.com

실험 1

SELECT users.id, users.name, users.post_id, posts.title, posts.content FROM users LEFT JOIN posts ON users.post_id = posts.id;

실험 2 

SELECT users.id, users.name, users.post_id, posts.title, posts.content FROM users righT JOIN posts ON users.post_id = posts.id;

실험 3

mysql> SELECT users.id, users.name, users.post_id, posts.title, posts.content FROM users LEFT JOIN posts ON users.post_id = posts.id;

[3번 정답]

mysql> SELECT users.id, users.name, users.post_id, posts.title, posts.content FROM users LEFT JOIN posts ON users.id = posts.user_id;

따로 써보면 아래와 같다


mysql> select users.id,
    -> users.name,
    -> posts.id,
    -> posts.title,
    -> posts.content fRom users left join posts on users.id=posts.user_id;

 

[팁]

- 칼럼 이름을 매번 뜨기 힘드니, 내가 그렇게 쓰기로 했다. 임의로 

- 칼럼 이름은 AS 생략해도 됨

 SELECT users.id AS u.i,  posts.title AS  p.t FROM users LEFT JOIN posts ON users.post_id = posts.id;

 SELECT users.id u.i,  posts.title p.t FROM users LEFT JOIN posts ON users.post_id = posts.id;

 

SELECT users.id AS u.i,  posts.title

AS  p.t FROM users LEFT JOIN posts ON users.post_id = posts.id;

 SELECT users.id u.i,  posts.title p.t FROM users LEFT JOIN posts ON users.post_id = posts.id;

 

 

 

- on 뒤에는 fk 

- FROM 뒤에는 left join 의 기준이 되는 테이블 

 

 

- select * FROM users left join on fk 후에 

* 로 다 보이면, 그때 , 내가 직접 보면서 

* 자리에 

select * 에 내가 보고 싶은 칼럼을 그떄 넣어서 뽑으면 된다. (출력 결과 보면서 하면 됨) 

 

 

[erd table]에 users 테이블 -> order 테이블 -> order_detail 테이블 에 join, join , join 하려면

 SELECT * FROM users

LEFT JOIN orders ON users.post_id = posts.id

LEFR JOIN orders_detail ON ~ 

--> 위에서부터 조인된 테이블로 내려와서 거기에서 조인하는 거

 

 

db beavers 다운 

-> erd 테이블과 postman 동시 볼 수 있음 

 

 

- join 으로 하면 교집합만 나옴

(한번은 left join으로 하고 

한번은 Join으로 하면서 

null 이 나오고 안 나오고 결과로 보는 거)