mysql 하위 쿼리를 사용하는 방법

王林
풀어 주다: 2023-06-02 10:31:05
앞으로
1871명이 탐색했습니다.

다른 문에 나타나는 Select 문을 하위 쿼리 또는 내부 쿼리라고 하며, 외부 쿼리 문을 기본 쿼리 또는 외부 쿼리라고 합니다.

-- 子查询
-- 查询的条件来自于另一查询的结果
SELECT * FROM t_user WHERE number=(SELECT number FROM t_user WHERE NAME='张三')
로그인 후 복사

물론 하위 쿼리에도 유형이 있는데, 이는 다음과 같은 유형으로 나뉩니다.

  • 스칼라 하위 쿼리(결과 집합에는 하나의 행과 하나의 열만 있음)

  • column 하위 쿼리(결과 집합에는 하나의 열과 여러 행만 있음)

  • row 하위 쿼리(결과 집합에는 하나의 행과 여러 열이 있음)(적음) )

  • 테이블 하위 쿼리(결과 세트는 일반적으로 다중 행 및 다중 열입니다)

여기서 새 t_user 테이블을 예로 들어 보겠습니다.

mysql 하위 쿼리를 사용하는 방법

여기서의 분류는 다음을 기반으로 합니다. 위 sql과 같은 임베디드 서브쿼리의 결과에 대해 서술문은 스칼라 서브쿼리입니다

mysql 하위 쿼리를 사용하는 방법

서브쿼리 결과는 행과 열이 각각 1개뿐입니다

그럼 SQL에서 서브쿼리의 위치를 ​​기준으로 논의하겠습니다. 명령문:

선택 후: 스칼라 하위 쿼리만 지원됩니다

-- select语句后面,将t1查询出的结果作为子查询的条件
SELECT t1.number,
  (SELECT NAME FROM t_user t2 WHERE t1.name = t2.name)
FROM t_user t1
로그인 후 복사

쿼리 결과:

mysql 하위 쿼리를 사용하는 방법

insert into, 업데이트 및 삭제 후:

insert into는 테이블에 데이터를 삽입하는 데 사용되므로 다음을 수행할 수 있습니다. 열 하위 쿼리 및 테이블 하위 쿼리

-- insert into 后跟子查询
INSERT INTO t_user(number,NAME,age,birthday,weight,sex,opertime)
       SELECT number,NAME,age,birthday,weight,sex,NOW() FROM t_user WHERE id=3
로그인 후 복사

여기서 주목해야 할 것은 업데이트 및 삭제입니다

UPDATE t_user SET NAME='abc' WHERE number=(SELECT number FROM t_user WHERE Weight=110)

DELETE FROM t_user WHERE id= (SELECT id FROM t_user WHERE id=7)

위의 두 SQL, mysql은 다음과 같이 실행할 수 없습니다.

mysql 하위 쿼리를 사용하는 방법

mysql의 기본 메커니즘은 다음과 같은 경우 이 테이블의 구조를 변경하는 것을 방지합니다. 이 테이블 운영

즉, 하위 쿼리는 현재 운영 중인 테이블을 쿼리할 수 없습니다

뒤: 스칼라 하위 쿼리, 열 하위 쿼리, 행 하위 쿼리

-- where后跟标量子查询
-- 查询体重最大的人信息
SELECT * FROM t_user WHERE weight=(SELECT MAX(weight) FROM t_user)
-- where后跟列子查询
-- 查询体重大于或等于130的人信息
SELECT * FROM t_user WHERE weight IN (SELECT weight FROM t_user WHERE weight>=130)
-- where后跟行子查询
-- 查询年龄最大,体重最大的人的信息
SELECT * FROM t_user 
     WHERE (age,weight) = (SELECT MAX(age),MAX(weight) FROM t_user)
로그인 후 복사

from 뒤에 올 수 있습니다. subquery

테이블 하위 쿼리의 결과는 여러 행과 열, 즉 테이블

-- 表子查询
SELECT t.age FROM (SELECT age,weight FROM t_user)t
로그인 후 복사

결과:

mysql 하위 쿼리를 사용하는 방법

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

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