권장(무료): SQL 튜토리얼
데이터베이스를 처음 사용하는 경우 DQL의 연결 쿼리에 대해 의구심이 있고 언제 사용해야 할지 모르시나요? 어떤 시나리오에서 연결 쿼리가 발생하나요?
걱정하지 마세요. 참고하실 수 있도록 내부 조인, 왼쪽 외부 조인, 오른쪽 외부 조인의 특성과 적용 시나리오에 대해 제가 이해한 내용을 소개해 드리겠습니다.
다음 코드 데모는 이름 테이블과 국가 테이블을 기반으로 합니다.
이름 테이블
id | name |
---|---|
1 | Xishi |
2 | Yang Yuhuan |
3 | Diao Chan |
4 | Wang Zhaojun |
5 | Zhao Feiyan |
country table
id | country | A_ID |
---|---|---|
1 | 봄과 가을의 베트남어 | 1 Tang Dynasty의 Puzhou는 Yongle 출신 인 Xinzhou 출신 인 Xinzhou 출신 인 Han Dynasty의 후반에 Shanxi 3 |
A 서한 남군 쯔귀 출신 | 4 | |
전국시대 | 6 | |
참고: | 1) b 테이블 A_ID와 테이블 a_id사이에는 관계가 있습니다. 2) 조인 쿼리는 일치하지 않는 데이터를 제거하기 위해 연관 조건을 사용하는 것입니다. 그렇지 않으면 데카르트 곱이 발생합니다. | |
Xishi | 1 | 춘추 월국인 |
22
Yang Yuhuan
당나라 영락, 포주, 당나라 사람들
23 | Diao Chan | 3 | 동한 말기 산서성 신저우 출신 사람들 | 3 |
---|---|---|---|---|
Wang Zhaojun | 4 | 서한 시대의 남군 zigui people | 4 | |
2) 왼쪽 외부 조인 |
语法: select 要查询的字段 from 表名1 inner join 表名2 on 表1.字段 = 表2.字段; inner join 可简写为 逗号, 内连接特点: 只会保留完全符合on后条件的数据 应用场景: 如果两张表有外键关系可以使用内链接,因为通过内链接每一条只能返回单条记录 select * from name n inner join country c on n.id = c.N_ID; |
id | name | |
country | N_ID | 1 | ||
1 | Yue 출신 사람들 춘추시대 | 1 | 2 |
당나라 포주 영락 사람들
23 | 초선 | 3 | A Xinzhou 출신 인 동부 한 왕조의 Shanxi는 서부 Han Dynasty의 Nanjun Zigui 출신 인 Han Dynasty | 3 |
---|---|---|---|---|
wang Zhaojun | 4 | western han dynasty | 4 | |
zhao Feiyan | null | null | nu ll | |
3) 오른쪽 외부 조인 |
语法: select 要查询的字段 from 表1 left outer join 表2 on 表1.字段 = 表2.字段; outer 可省略 左外连接特点: 以左表为主,会保留左表中不符合on后条件的数据 应用场景: 只有部分记录可以从表2中查到,但表1想要显示所有记录,就可以和表2通过左外连接查询。 select * from name n left join country c on n.id=c.N_ID; |
id | name | |
country | N_ID | 1 | ||
1 | 춘추시대 월족 | 1 | 2 |
당나라 영락포주 사람들
23 | Diao Chan | 3# | null | |
---|---|---|---|---|
전국시대 | 6 | 4) 전체링크 | ||
id | name | id | 국가 | |
1 | Xishi | 1 | ||
1 | 2 | Yang Yuhuan | 2 | |
2 | 3 | 초선 | 3 |
4
4 | 서한 난쥔자계 | 4 | 5 | |
---|---|---|---|---|
null | null | null | null | |
전국시대 | 6 | 참고: 이 구문은 MySql에 적용되지 않습니다. | ||
자세한 관련 지식은 | sql칼럼을 주목해주세요~ |
위 내용은 SQL 문의 내부 조인, 왼쪽 외부 조인, 오른쪽 외부 조인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!