깔끔한 스키마 → 한 테이블에 너무 많은 기능이 있지 않은 지 확인하기
JOIN을 토대로 새로운 TABLE이 만들어 지고 그 테이블에서 필터링 등의 추가 작업을 거친 후 리턴된다.
SELECT users.username, post_comments.comment FROM users
JOIN post_comment ON post_comment.user_id=user.id
어느 게시물에도 댓글을 달지 않은 유저 가져오기SELECT users.username FROM users
JOIN post_comments ON post_comments.user_id = user.id
WHERE post_comments.user_id IS NULL
INSERT INTO follow_follower (user_id='박코딩의 PK', follower_id='김코딩의 PK')
VALUES (
SELECT id FROM user WHERE users.username = '박해커',
SELECT id FROM user WHERE users.username = '김코딩'
)
UPDATE post_comments
SET comment='Hello World'
WHERE post_comments.user_id = 1 AND post_id = 21
DELETE FROM posts_hashtags
WHERE post_id = 21 AND hashtag_id = (
SELECT id FROM hashtags WHERE name = '맞팔'
)
각 user(컬럼명: name)가 작성한 글의 개수 (컬럼명: ContentCount)를 출력하기 위한 SQL을 작성해주세요.
SELECT user.name, COUNT(content.id) AS ContentCount FROM user
LEFT JOIN content ON content.user_id = user.id
GROUP BY user.name
// 0개도 출력되는 형태
extra)
JOIN content ON content.user_id = user.id
// 0개는 제외하고 출력하는 형태