SQL 연결(JOIN)
SQL 조인은 둘 이상의 테이블의 행을 결합하는 데 사용됩니다.
SQL JOIN
SQL JOIN 절은 테이블 간의 공통 필드를 기반으로 둘 이상의 테이블의 행을 결합하는 데 사용됩니다.
가장 일반적인 JOIN 유형: SQL INNER JOIN(단순 JOIN) . SQL INNER JOIN은 JOIN 조건을 충족하는 여러 테이블의 모든 행을 반환합니다.
데모 데이터베이스
이 튜토리얼에서는 PHP 샘플 데이터베이스를 사용합니다.
다음은 "Websites" 테이블에서 선택된 데이터입니다:
+----+--------------+-- - -----------+------+---------+
| 아이디 | url ------+-------+
| 구글 https://www.google.cm/ 1 | |
| 2 | 타오바오 |
| php 중국어 홈페이지 | 🎜 >| 4 | 웨이보 | CN |
| 3 | | http://stackoverflow.com/ | 0 | IND |
+----+-------------- ---------------+------+---------+
site_id
| 아이디 | url ------+-------+
| 구글 https://www.google.cm/ 1 | |
| 2 | 타오바오 |
| php 중국어 홈페이지 | 🎜 >| 4 | 웨이보 | CN |
| 3 | | http://stackoverflow.com/ | 0 | IND |
+----+-------------- ---------------+------+---------+
다음은 "access_log" 웹사이트 접속 기록 테이블의 데이터입니다:
mysql> SELECT * FROM access_log;
+------+------ --- +-------+------------+
| 지원 사이트_ID 개수 |
+------+--- --- ---+-------+------------+
| 1 | 2016-05-10 |
| 3 | 2016-05-13 |
| 2016-05-14 | 5 | 2016년 5월 14일 |
| 2016년 5월 15일 | 220 | -05 -16 |
| 9 | 3 | 2016-05-17 |
+------+------+- -- ---------+
9행 세트(0.00초)
'웹사이트'의 '
id
' 열에 유의하세요. " 테이블은 "access_log" 테이블의 "+------+------ --- +-------+------------+
| 지원 사이트_ID 개수 |
+------+--- --- ---+-------+------------+
| 1 | 2016-05-10 |
| 3 | 2016-05-13 |
| 2016-05-14 | 5 | 2016년 5월 14일 |
| 2016년 5월 15일 | 220 | -05 -16 |
| 9 | 3 | 2016-05-17 |
+------+------+- -- ---------+
9행 세트(0.00초)
'웹사이트'의 '
id
" 필드를 가리킵니다. 위의 두 테이블은 "site_id" 열을 통해 연결됩니다. 그런 다음 INNER JOIN이 포함된 다음 SQL 문을 실행하면:
Instance SELECT Websites.id, Websites.name, access_log.count, access_log.dateFROM
Websites
위 SQL을 실행하여 출력한 결과는 다음과 같습니다.
INNER JOIN access_log
ON Websites.id=access_log.site_id;위 SQL을 실행하여 출력한 결과는 다음과 같습니다.
다양한 SQL JOIN
예를 계속하기 전에 사용할 수 있는 다양한 SQL JOIN 유형을 나열해 보겠습니다.
INNER JOIN: 테이블에 일치하는 항목이 하나 이상 있으면 행을 반환
LEFT JOIN: 오른쪽 테이블에 일치하는 항목이 없더라도 또한 왼쪽 테이블의
RIGHT JOIN 모든 행을 반환합니다. 일치하는 항목이 없더라도 오른쪽 테이블의 모든 행
을 반환합니다. 왼쪽 테이블 FULL JOIN: 테이블 중 하나에 일치하는 항목이 있으면 행을 반환합니다.