
SELECT contents, username
FROM comments
JOIN users ON user.id = comments.user_id;
-> comments 테이블을 임시 복사하고 FK인 user_id와 같은 값을 가지는 user 테이블의 id값을 매핑시키고 그 컬럼의 username 값을 복사해온다.
FROM comments JOIN users != FROM users JOIN comments
-> 아래 4가지 방식의 Join을 이해하면 다르다는 것을 알 수 있다.
만약 둘다 id 라는 속성을 가지고 있는데 Join후에 Select를 한다면??
SELECT id
FROM comments
JOIN users ON user.id = comments.user_id;
-> ERROR!!! 그렇다면 해결책은?
SELECT comments.id // 구체적인 속성값을 명시해준다!
FROM comments
JOIN users ON user.id = comments.user_id;
추가적인 내용
SELECT comments.id AS comment_id, photos.id AS photos_id
FROM comments
JOIN users ON user.id = comments.user_id;
Join 후에 양쪽 테이블의 id 값을 가져올때 이름을 붙여서 구분지어서 가져온다.

SELECT url,username
FROM photos
INNER JOIN users ON user.id = photos.user_id;
SELECT url,username
FROM photos
LEFT JOIN users ON user.id = photos.user_id;
SELECT url,username
FROM photos
RIGHT JOIN users ON user.id = photos.user_id;
SELECT url,username
FROM photos
FULL JOIN users ON user.id = photos.user_id;
만약 본인의 사진에 댓글을 단 사람을 알고자 한다면?
SELECT url,contents
FROM comments
JOIN photos ON photos.id = comments.photo_id
WHERE comments.user_id = photos.user_id;
3개의 테이블을 조건과 함께 Join하는 방법을 알아보자
SELECT title, name, rating
FROM reviews
JOIN books ON books.id = reviews.book_id;
JOIN authors ON authors.id = reviews.reviewer_id AND authors.id = books.author_id;
-> 두번째 Join 문에서 where 키워드 없이 조건을 통해서 3개의 테이블을 Join 하는 방식이다. 이 실습은 마지막 authors 테이블의 PK와 book과 review에 있는 작가의 FK가 같아야지 Join이 된다는 조건의 문제였다.