>  기사  >  데이터 베이스  >  mysql 서브쿼리에 대한 간략한 소개

mysql 서브쿼리에 대한 간략한 소개

小云云
小云云원래의
2018-03-15 10:41:452078검색

하위 쿼리의 기본 의미는 쿼리 문(select 문) 내의 특정 위치에 나타나는 "쿼리 문"입니다. 이 기사에서는 모든 사람에게 도움이 되기를 바라며 주로 mysql 하위 쿼리에 대한 간략한 소개를 공유합니다.

예:
mysql 서브쿼리에 대한 간략한 소개
수정 후:
mysql 서브쿼리에 대한 간략한 소개

"select 5000"의 하위 쿼리문을 "모든 제품의 평균 가격을 선택하세요"로 바꾸면 실용적인 의미를 갖게 됩니다.

  • 하위 쿼리는 메인 쿼리를 제공합니다

  • 메인 쿼리는 서브 쿼리가 특정 결과 데이터를 얻은 후에만 실행됩니다.

형식에서는 다음과 같이 표현할 수 있습니다.

  • select 필드 또는 표현식 또는 테이블 이름이나 링크 결과의 하위 쿼리 또는 하위 쿼리

의 필드나 표현식 또는 조건부 판단이 있는 하위 쿼리, 즉 하위 쿼리가 이러한 위치에 나타날 수 있습니다(그 중에서 동일한 의미를 갖기 때문에 실제로 작동합니다).

하위 쿼리, 위치(경우)로 구분:

유형 양식
메인 쿼리의 결과 데이터로 c1 선택,(탭2에서 f1 선택) as f11 from tab1; #여기 하위 쿼리에는 하나의 데이터만 있어야 합니다(행 1개, 열 1개, 스칼라 하위 쿼리)
기본 쿼리의 조건부 데이터로 select c1 from tab1 where c1 in( tab2에서 f1 선택) ); #여기서 하위 쿼리는 여러 데이터(여러 행과 하나의 열, 열 하위 쿼리)일 수 있습니다
메인 쿼리의 소스 데이터로 select c1 from (f1을 c1로, f2를 tab2로 선택) as t2 ; #여기서 하위 쿼리는 모든 쿼리 결과일 수 있습니다(테이블 하위 쿼리)

공통 하위 쿼리

비교 연산자의 하위 쿼리

형식:

  • 피연산자 비교 연산자(스칼라 하위 쿼리);

설명:

  • 피연산자는 실제로 비교입니다. 이는 둘 중 하나일 뿐입니다. 데이터 연산자는 일반적으로 필드 이름입니다.

가장 높은 항목을 찾습니다.

  •   select ....  from XXX where  id > 5;

    in의 이전 사용법:
아아아아

하위 쿼리의 내용은 다음과 같습니다.
  • select * from product  where  price = (select  max(price)  from  product );

    예:
  • 모든 카테고리 이름에서 "electricity"라는 단어가 포함된 모든 제품을 찾습니다.

  • XX  in  (值1,值2,值3,....);

모든 하위 쿼리를 사용하세요.

  • 양식:

    아아아아

    의미:

특정 피연산자(필드)가 열 하위 쿼리의 모든 값에 대해 비교 연산자를 만족하면 이를 만족하는 것으로 간주됩니다.

예:

XX  in  (列子查询)

모두를 사용한 하위 쿼리:
  • 형식:

    select  *  from  product  where  protype_id  in( 
    select  protype_id  from  product_type  where  protype_name  like ‘%电%’
    );

    의미:

열 하위 쿼리의 모든 데이터 값에 대해 특정 피연산자(필드)가 모두 비교 연산자가 만족되는 경우에만 조건이 만족됩니다.

예:

操作数 比较运算符 any  (列子查询);

    some
의 하위 쿼리를 사용하세요. 한마디로 some은 any의 동의어입니다.

exists를 사용한 쿼리
  • 형식:

    select  *  from  tab1  where  id >  any  (select  f1  from  tab2);

    의미:

하위 쿼리에 "데이터가 있음"이면 존재 결과는 true이고, 그렇지 않으면 false입니다.

설명:

    존재 하위 쿼리의 의미로 인해 기본 쿼리에서는 모두 제거되거나 아무것도 제거되지 않는 상황이 자주 발생합니다. 이 의미(사용 상황)에 국한되면 기본적으로 실질적인 의미를 잃게 됩니다.
  • 그래서:

실제 응용 프로그램에서 이 하위 쿼리는 독립적인 하위 쿼리가 아닌 경우가 많지만 "기본 쿼리"의 데이터 소스(테이블)와 특정 관계(일반적으로 연결 관계)를 설정해야 합니다. 설정 방법은 "암시적"입니다. 즉, 관계가 코드에 반영되지 않지만 내부적으로 연결의 "실질"이 있습니다.

이 암시적 연결 방법은 일반적으로 기본 쿼리 테이블의 데이터(필드)를 사용하여 하위 쿼리의 where 조건문에 반영됩니다.

예:

  • 다음을 포함하는 모든 제품 카테고리 이름에 "electricity"라는 단어가 있는 경우

결과는 다음과 같습니다.

  • 참고:

    - 이러한 종류의 하위 쿼리 문은 "독립적으로 존재(독립적으로 실행)"할 수 없지만 기본 쿼리와 함께 사용해야 합니다.
    - 다른 하위 쿼리는 독립적으로 실행될 수 있으며 실행 결과를 얻습니다. mysql 서브쿼리에 대한 간략한 소개 - 이 하위 쿼리의 조건은 메인 쿼리의 특정 필드와 일정한 상관 관계를 갖도록 설정되어야 합니다. 일반적으로 이 판단은 두 테이블의 "원래 연결 조건"입니다.

  • 마지막 결론:


쿼리 요구 사항인 경우 조인 쿼리나 하위 쿼리를 사용하여 얻을 수 있으므로 일반적으로 더 효율적인 조인 보간을 사용하는 것이 좋습니다. mysql 서브쿼리에 대한 간략한 소개

관련 권장 사항:


MySQL 하위 쿼리에 대한 자세한 소개

mysql 하위 쿼리란 무엇입니까? 하위 쿼리를 사용하여 필터링하는 방법은 무엇입니까?

MySQL 하위 쿼리 최적화

위 내용은 mysql 서브쿼리에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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