SQL에서는 LEFT JOIN과 LEFT OUTER JOIN 모두 관련 열을 기준으로 두 개 이상의 테이블의 데이터를 결합하는 데 사용되지만 본질적으로 동일한 작업이므로 실제적인 차이는 없습니다. OUTER 키워드는 MySQL, PostgreSQL 및 SQL Server와 같이 널리 사용되는 데이터베이스 시스템을 포함하여 대부분의 데이터베이스 시스템에서 선택 사항입니다.

왼쪽 조인 또는 왼쪽 외부 조인
왼쪽 조인
ㅏ SQL 두 테이블을 결합하여 왼쪽 테이블의 모든 행을 표시하고 오른쪽 테이블의 일치하는 행을 표시하는 작업입니다. 오른쪽 테이블에 일치하는 항목이 없으면 다음이 표시됩니다. 없는 가치.
통사론
SELECT * FROM 테이블1
LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;
왼쪽 외부 조인
LEFT JOIN과 개념적으로 동일한 또 다른 SQL 작업입니다. 또한 테이블을 결합하여 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 표시합니다. 오른쪽 테이블에 일치하는 항목이 없으면 NULL 값을 표시합니다.
통사론
SELECT * FROM 테이블1
왼쪽 외부 조인 Table2 ON Table1.columnName = Table2.columnName;
LEFT JOIN과 LEFT OUTER JOIN은 SQL에서 본질적으로 동일합니다. 둘 다 두 테이블의 데이터를 결합하여 왼쪽 테이블의 모든 행을 표시하고 오른쪽 테이블의 일치하는 행을 표시합니다. 오른쪽 테이블에 일치하는 항목이 없으면 NULL 값이 표시됩니다. 유일한 차이점은 용어입니다. LEFT JOIN은 다음과 같은 일부 데이터베이스에서 사용됩니다. MySQL , LEFT OUTER JOIN은 SQL Server와 같은 다른 곳에서 사용됩니다. 더 깊은 방법으로 Java에서 사용되는 System.out.print()는 동시에 Python에서 사용되지만 둘 다 동일한 출력을 반영합니다. 따라서 데이터베이스 시스템이 어떤 용어를 선호하는지가 중요하지만 결과는 동일합니다.
예제를 살펴보기 전에 왼쪽 외부 조인과 왼쪽 조인을 수행하는 데 필요한 데이터를 생성해 보겠습니다.
1단계: 데이터베이스 생성
create database geeksforgeeks; use geeksforgeeks;>
2단계: athelete라는 테이블 만들기
create table atheletes(Id int, Name varchar(20), AtheleteNO int, primary key(Id) );>
3단계: athelete 테이블에 값 삽입
INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (1, 'abisheik', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (2, 'Niyas', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (3, 'Joseph', 29); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (4, 'Juan', 24);>
4단계: Points라는 테이블 만들기
CREATE TABLE Points(ID INT, Score INT,AtheleteID INT, PRIMARY KEY (ID) );>
5단계: Points 테이블에 값 삽입
INSERT INTO Points (ID, Score, AtheleteID) VALUES (1, 270, 1); INSERT INTO Points (ID, Score, AtheleteID) VALUES (2, 297, 2); INSERT INTO Points (ID, Score, AtheleteID) VALUES (3, 210, 3); INSERT INTO Points (ID, Score, AtheleteID) VALUES (4, 180, 4);>
이제 조인 작업을 위한 athelete 테이블과 포인트를 성공적으로 생성했습니다.
예:
Left Outer Join을 사용하여 쿼리가 실행됩니다.
질문
SELECT * FROM atheletes LEFT OUTER JOIN Points ON atheletes.ID = Points.AtheleteID;>
산출
ID | 이름 | 운동선수 NO | ID | 점수 | 선수ID |
---|---|---|---|---|---|
1 | 아비셰익 | 27 | 1 | 270 char을 문자열로 변환 java | 1 |
2 | 니야스 | 27 | 2 | 297 | 2 |
삼 | 조셉 | 29 | 삼 | 210 | 삼 |
4 | 후안 | 24 | 4 | 180 | 4 |
예:
Left Join을 사용하여 쿼리가 실행됩니다.
질문
SELECT * FROM atheletes LEFT JOIN Points ON atheletes.ID = Points.AtheleteID;>
산출
ID | 이름 | 운동선수 NO | ID | 점수 | 선수ID |
---|---|---|---|---|---|
1 | 아비셰익 | 27 | 1 | 270 | 1 |
2 | 니야스 | 27 | 2 | 297 | 2 |
삼 | 조셉 | 29 | 삼 | 210 | 삼 |
4 | 후안 | 24 | 4 | 180 | 4 |
결론
SQL에서 LEFT JOIN과 LEFT OUTER JOIN은 용어만 다를 뿐 기본적으로 동일한 작업입니다. 두 작업 모두 두 테이블의 데이터를 결합하여 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 표시하고 일치하지 않는 행에 대해서는 NULL 값을 표시합니다. 데이터베이스 시스템에서 사용되는 용어에 관계없이 결과는 동일하게 유지됩니다.
왼쪽 조인과 왼쪽 외부 조인에 대한 FAQ
Q.1: LEFT JOIN과 LEFT OUTER JOIN 사이에 성능 차이가 있습니까?
답변:
아니요, 성능 차이는 없습니다. 이러한 용어는 서로 바꿔 사용할 수 있으며 데이터베이스 최적화 프로그램은 이를 동일한 방식으로 처리합니다.
Q.2: 세 개 이상의 테이블에 LEFT JOIN 또는 LEFT OUTER JOIN을 사용할 수 있나요?
답변:
예, 구문을 확장하고 각 테이블에 대한 조인 조건을 지정하여 여러 테이블에 대해 이러한 조인 작업을 사용할 수 있습니다.
Q.3: 모든 데이터베이스 시스템이 LEFT JOIN과 LEFT OUTER JOIN을 모두 지원합니까?
답변:
MySQL, PostgreSQL, SQL Server 등 가장 널리 사용되는 데이터베이스 시스템은 LEFT JOIN과 LEFT OUTER JOIN을 모두 지원합니다. 그러나 특정 데이터베이스 문서의 호환성을 확인하는 것이 중요합니다.
Q.4: 조인 조건을 지정하지 않고 LEFT JOIN 또는 LEFT OUTER JOIN을 사용하면 어떻게 됩니까?
답변:
조인 조건 없이 이러한 조인 작업을 사용하면 왼쪽 테이블의 각 행이 오른쪽 테이블의 모든 행과 결합되어 잠재적으로 크고 비효율적인 결과 집합이 되는 데카르트 곱이 생성됩니다.
icloud 사진에 액세스하는 방법
Q.5: 다른 유형의 SQL 조인이 있습니까?
답변:
예, SQL은 INNER JOIN, RIGHT JOIN, FULL OUTER JOIN 및 CROSS JOIN을 포함한 다양한 유형의 조인을 지원하며, 각 조인은 여러 테이블의 데이터를 결합하는 데 서로 다른 용도로 사용됩니다.