CREATE TABLE users (
id SERIAL PRIMARY KEY,
nickname VARCHAR(50),
email VARCHAR(100)
);
CREATE TABLE photos (
id SERIAL PRIMARY KEY,
filename VARCHAR(255),
user_id INTEGER REFERENCES users(id)
);
CREATE TABLE comments (
id SERIAL PRIMARY KEY,
body VARCHAR(1000),
user_id INTEGER REFERENCES users(id),
photo_id INTEGER REFERENCES photos(id)
);
CREATE TABLE settings (
id SERIAL PRIMARY KEY,
private BOOLEAN,
adding_photos VARCHAR(15),
user_id INTEGER UNIQUE REFERENCES users(id)
);
CREATE TABLE likes (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id),
photo_id INTEGER REFERENCES photos(id)
);


SELECT
comments.body,
users.nickname
FROM
comments
JOIN users ON
users.id = comments.user_id
WHERE
comments.photo_id = 1;

SELECT
users.nickname,
photos.filename
FROM
likes
JOIN users ON
users.id = likes.user_id
JOIN photos ON
photos.id = likes.photo_id
WHERE
photos.id = 2;


INNER JOIN는 교집합만 조회한다면 아웃터 조인은 +LEFT , RIGHT에 따라 기준 테이블을 기준으로 전부 조회한다.
SELECT
photos.filename,
users.nickname
FROM
photos
LEFT JOIN users ON
users.id = photos.user_id;

SELECT
comments.body,
photos.filename
FROM
comments
LEFT JOIN photos ON
photos.id = comments.photo_id;
