MySQL 에서 하위 조회 와 양자 조 회 를 사용 하 는 기본 작업 튜 토리 얼
하위 조 회 는 하나의 SELECT 문장의 조회 결 과 를 중간 결과 로 하여 다른 SQL 문 구 를 호출 하 는 것 입 니 다.MySQL 은 SQL 표준 이 요구 하 는 모든 하위 조회 형식 과 작업 을 지원 하 며 특유 의 몇 가지 특성 을 확장 합 니 다.
하위 조회 에는 고정된 문법 이 없습니다.하위 조회 의 예 는 다음 과 같 습 니 다.
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)
대응 하 는 두 개의 데이터 테이블 은 다음 과 같다.article 문장 표:
user 사용자 테이블:
조회 반환 결 과 는 다음 과 같다.
이 예 에서 먼저 하위 검색 어 를 통 해 모든 status=1 의 uid 를 조회 합 니 다.실제 검색 은 다음 과 같 습 니 다.
SELECT * FROM article WHERE uid IN(1,2)
MySQL 표준 양자 조회양자 조 회 는 하위 조회 가 하나의 숫자 나 문자열 같은 단일 값 의 스칼라 를 되 돌려 주 는 것 을 말 하 며,하위 조회 에서 가장 간단 한 반환 형식 이기 도 합 니 다.
양자 조회 의 예 는 다음 과 같다.
SELECT * FROM article WHERE uid = (SELECT uid FROM user WHERE status=1 ORDER BY uid DESC LIMIT 1)
이 예 에서 하위 검색 어:
SELECT uid FROM user WHERE status = 1 ORDER BY uid DESC LIMIT 1
단일 한 숫자(예 를 들 어 2)를 되 돌려 줍 니 다.실제 검색 어 는 다음 과 같 습 니 다.
SELECT * FROM article WHERE uid = 2
하위 검색 으로 비교이 조작 부호 들 은 하위 조회 의 표 량 결 과 를 비교 할 수 있 습 니 다.보통 하위 조회 의 위 치 는 비교 식 오른쪽 에 있 습 니 다.
SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)
제시 하 다.이 조작 부호 중 하 나 를 사용 하여 비교 할 때,하위 조 회 는 반드시 표 량 을 되 돌려 야 한다.유일한 예 외 는=줄 조회 와 동시에 사용 할 수 있다.
하위 조회 와 테이블 연결
많은 경우 에 하위 조회 의 효 과 는 JOIN 표 와 유사 하지만 일부 특수 한 상황 에서 하위 조회 로 연결 해 야 하 며 표 로 연결 할 수 없습니다.예 를 들 어:
SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)
그리고 다음 예:
SELECT * FROM article AS t WHERE 2 = (SELECT COUNT(*) FROM article WHERE article.uid = t.uid)
이 예 는 사용자 가 두 편의 글 을 발표 한 모든 글 기록 을 찾 아야 한다.대응 하 는 두 개의 데이터 테이블 은 다음 과 같다.article 문장 표:
user 사용자 테이블:
조회 반환 결 과 는 다음 과 같다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.