>  기사  >  데이터 베이스  >  mysql에서 자주 사용하는 기본 연산 구문(8)~~다중 테이블 쿼리 병합 결과 및 내부 조인 쿼리 [명령줄 모드]

mysql에서 자주 사용하는 기본 연산 구문(8)~~다중 테이블 쿼리 병합 결과 및 내부 조인 쿼리 [명령줄 모드]

黄舟
黄舟원래의
2017-03-03 14:17:281578검색

1. 두 쿼리 결과를 병합하려면 Union 및 Union All을 사용합니다. tablename1에서 필드 이름을 선택합니다. tablename2에서 필드 이름을 선택합니다.


이 작업에 유의하세요. 두 테이블의 필드가 동일하고 필드 데이터 유형도 동일한지 확인해야 합니다. 또한 Union을 사용하면 중복된(동일한) 레코드는 제거되지만 Union All은 제거되지 않습니다.

참고: 다음 조인 쿼리는 데카르트 곱의 개념을 포함합니다. 즉, 두 개의 테이블이 있고 첫 번째 테이블에는 n개의 레코드가 있고 다른 테이블에는 m개의 레코드가 있는 경우 다음으로 얻은 레코드 수는 데카르트 곱은 n*m입니다. 첫 번째 테이블의 필드 수가 a이고 다른 테이블의 필드 수가 b인 경우 데카르트 곱으로 얻은 필드 수는 a+b입니다.

2. 자연 조인 사용: 두 테이블의 필드가 동일하다는 전제가 있습니다. (이 작업은 중복 필드를 제거합니다.)


이 쿼리에 대해 제가 이해한 바는 다음과 같습니다. 관련 필드(예: 여기서는 Department_id)에 존재하는 데이터를 두 테이블에 유지하고 하나의 테이블에만 존재하는 데이터를 제거합니다:


위 내용과 같이 company에는 4개, emp에는 7개의 데이터가 있으므로, 어느 것을 앞에 놓아도 part_id가 들어가 있으므로 6개만 나옵니다. company는 4이지만 emp에는 없고 emp의 part_id는 5입니다. 그리고 company에는 없습니다.

3. 등가 조인 쿼리에 대한 내부 조인:


제가 이해한 바에 따르면 이 작업과 위의 자연 조인의 차이점은 다음과 같습니다. 제거되지 않음 반복 필드는 더 유연하며 동일한 필드 이름을 가진 필드가 필요하지 않습니다:


4. 같지 않은 값 조인 쿼리에 대한 내부 조인:


이 쿼리의 경우 "=" 쿼리의 보수, 즉 이 쿼리의 결과 집합 = 데카르트 곱 결과 집합에서 "를 뺀 것으로 이해됩니다. ="쿼리의 결과 집합입니다. 이 예에서 회사에는 4개의 레코드가 있고 emp에는 7개의 레코드가 있으며 데카르트 곱은 4*7=28 레코드입니다."="쿼리 결과는 1회 6개의 레코드입니다." != "쿼리는 나머지 22개 레코드에 대한 것이어야 합니다.

5. 위 연산에서 또 다른 종류의 쿼리를 확장할 수 있습니다. 단어 연결 쿼리, 즉 실제로 테이블이 하나뿐이고 이름을 변경하여 두 개로 사용할 수 있습니다.


보시다시피 데카르트 곱에 따르면 4*4=16개의 결과가 나와야 하는데 조건 때문에 4개의 결과가 필터링되었습니다.

위는 MySQL의 공통 기본 연산 구문입니다(8)~~다중 테이블 쿼리 병합 결과 및 내부 조인 쿼리 [명령줄 모드]의 내용은 더 많은 관련 내용을 참고하시기 바랍니다. PHP 중국어 웹사이트 (www.php.cn )!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.