SQL JOIN
LEFT JOIN
--左側の条件値がnullまたは右側の場合、条件値を減らしながら左側joinをインポート
生活コードのビデオを見て、机を3つ作って、joinを勉強しました.
https://www.youtube.com/watch?v=pJqBR2TNe24&t=80s
-- DATA BASE 만들기
CREATE DATABASE join_prac;
USE join_prac;
SHOW TABLES;
CREATE TABLE topic (
`tid` INT NOT NULL,
`title` CHAR(20) DEFAULT NULL,
`description` CHAR(50) DEFAULT NULL,
`author_id` INT DEFAULT NULL
);
SHOW TABLES;
SELECT * FROM topic;
INSERT INTO topic
VALUES ('4','ORACLE','ORACLE is...', NULL);
CREATE TABLE profile (
`pid` INT NOT NULL,
`title` CHAR(20) DEFAULT NULL,
`description` CHAR(50) DEFAULT NULL
);
SHOW TABLES;
INSERT INTO profile
VALUES ('3','DBA', 'DBA is...');
SELECT * FROM
`profile`;
-- topic table을 기준으로 on 뒤에 조건
-- topic.author_id 와 오른쪽의 aid가 같은 짝으로
-- 데이터가 마치 뒤에 붙어서 기차같이? 출력된다
-- topic.author_id가 null인 row는 뒤에 null로 따라 붙는다
-- 왼쪽의 조건값이 null 이면 그것을 감소하면서 가져오는게 left join
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.ai
3つのテーブルを接続-- topic.author_id = profile.pid; 조건에 맞게 profile table이 옆에 또 붙는다
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.aid
LEFT JOIN profile ON topic.author_id = profile.pid;
-- JOIN으로 SELECT하고 원하는 정보만 가져오기
-- title이란 column 명이 겹치므로 topic.title, profile.title 이런식으로 출처를 붙여준다
-- as 로 고유의 column명으로 가져올 수 있음
SELECT tid, topic.title, author_id, profile.title AS job_title FROM topic LEFT JOIN author ON topic.author_id = author.aid
LEFT JOIN profile ON topic.author_id = profile.pid;
SELECT tid, topic.title, city ,author_id, name, profile.title AS job_title FROM topic LEFT JOIN author ON
topic.author_id = author.aid LEFT JOIN profile ON author.profile_id = profile.pid WHERE name = 'egoing';
INNER JOINLEFTJOINと異なり、LEFT条件値がNULLの場合、そのROWは出力されません
SELECT * FROM topic INNER JOIN author ON topic.author_id = author.aid;
Reference
この問題について(SQL JOIN), 我々は、より多くの情報をここで見つけました https://velog.io/@dbfudgudals/SQL-JOINテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol