> 데이터 베이스 > MySQL 튜토리얼 > mysql 다중 테이블 공동 쿼리

mysql 다중 테이블 공동 쿼리

(*-*)浩
풀어 주다: 2020-09-15 16:24:04
원래의
24554명이 탐색했습니다.

INNER JOIN MySQL에서 INNER JOIN은 동등 조인(equijoin)이라고 불리며, 이는 동등 조인 조건을 지정해야 함을 의미합니다. CROSS와 INNER JOIN은 MySQL에서 함께 구분됩니다.

mysql 다중 테이블 공동 쿼리

다중 테이블 조인 유형

1. 데카르트 곱(교차 조인) MySQL에서는 결과에 따라 CROSS JOIN, CROSS 또는 JOIN을 생략하거나 ','를 사용할 수 있습니다. 연결된 두 데이터 테이블의 곱이므로 일반적으로 WHERE, ON 또는 USING 조건이 있는 경우에는 사용하지 않는 것이 좋습니다. 데이터 테이블 항목이 너무 많으면 속도가 매우 느려지기 때문입니다. 일반적으로 LEFT [OUTER] JOIN 또는 RIGHT [OUTER] JOIN

을 사용합니다. 2. INNER JOIN INNER JOIN은 MySQL에서 동등 조인(equijoin)이라고 하는데, 이는 MySQL에서 동등 조인 조건을 CROSS와 INNER JOIN으로 나누어 지정해야 한다는 의미입니다. Join_table: table_reference [INNER | CROSS] JOIN table_factor [join_condition]

3. MySQL의 외부 조인은 왼쪽 외부 조인과 오른쪽 조인으로 구분됩니다. 즉, 조인 조건을 만족하는 결과를 반환하는 것 외에 왼쪽 테이블(왼쪽 Join) 또는 오른쪽 테이블의 결과(right Join)가 조인 조건을 충족하지 않는 경우에는 그에 따라 NULL을 사용합니다.


예:

SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM table1 JOIN table2 SELECT * FROM table1,table2
로그인 후 복사

sql문:

user表:
id | name
———
1 | libk
2 | zyfon
3 | daodao
user_action表:
user_id | action
—————
1 | jump
1 | kick
1 | jump
2 | run
4 | swim
로그인 후 복사

결과:

select id, name, action from user as uleft join user_action a on u.id = a.user_id
로그인 후 복사

분석:

user_action에 user_id=4, action=swim이라는 기록이 있지만 결과에는 나오지 않는 점,

user 테이블에서 id=3, name=daodao인 사용자는 user_action에 해당 레코드가 없지만 결과 집합에는 나타납니다

현재는 Left 조인이므로 모든 작업이 Left를 기반으로 합니다.

결과 1, 2, 3, 4는 왼쪽 테이블과 오른쪽 테이블에 모두 있는 레코드이고, 5는 왼쪽 테이블에만 있고 오른쪽 테이블에는 없는 레코드입니다

작동 원리:

읽기 왼쪽 테이블에서 레코드를 선택하고 일치하는 오른쪽 테이블의 레코드(n)를 연결하여 n개의 레코드(오른쪽에 테이블이 없는 경우 결과 1과 결과 3과 같은 중복 행 포함)를 형성합니다. on 조건과 일치하는 경우 연결된 필드는 모두 null입니다. 그러면 다음 문서로 계속 진행하세요.


확장:

오른쪽 테이블에 일치하는 항목이 없으면 null이 표시되어 왼쪽 테이블에는 있지만 오른쪽 테이블에는 없는 모든 레코드를 찾는 규칙을 사용할 수 있습니다. 판결에 사용된 값은 null이 아닌 것으로 선언되어야 합니다.

예:

id | name   | action
——————————–
1  | libk  | jump     结果1      
1  | libk  | kick     结果2        
1  | libk  | jump     结果3       
2  | zyfon  | run      结果4          
3  | daodao | null     结果5         
---------------------
로그인 후 복사

(참고: 1. 열 값이 null인 경우 =NULL

대신 is null을 사용해야 합니다. 2. 여기서 a.user_id 열은 NOT NULL로 선언되어야 합니다.)

The 위 SQL의 결과:

select id, name, action from user as uleft join user_action a on u.id = a.user_idwhere a.user_id is NULL
로그인 후 복사

위 내용은 mysql 다중 테이블 공동 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿