>데이터 베이스 >MySQL 튜토리얼 >MySQL의 행 전체에 여러 특정 열 값이 있는 항목을 선택하는 방법은 무엇입니까?

MySQL의 행 전체에 여러 특정 열 값이 있는 항목을 선택하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-28 18:54:02222검색

How to Select Items with Multiple Specific Column Values Across Rows in MySQL?

특정 열 값이 여러 개인 여러 행에서 발생하는 MySQL 선택 ID

문제:

특정 열에 대해 지정된 여러 값을 기반으로 연관 테이블에서 항목을 선택하는 것은 일반적이지만 어려운 작업입니다. 예를 들어,

item_id category_id
1 200
1 201
1 202
2 201
2 202
3 202
3 203
4 201
4 207

표가 주어지면 목표는 지정된 카테고리 모두 또는 둘 다에 있는 항목만 선택하는 것입니다. 예를 들어 카테고리 ID 201과 202가 제공되면 항목 1과 2만 반환되어야 합니다.

해결책:

1. 자체 조인:

이 방법은 item_id 열에서 테이블 자체를 조인하는 것입니다.

<code class="sql">SELECT c1.item_id
FROM item_category AS c1
INNER JOIN item_category AS c2 ON c1.item_id = c2.item_id
WHERE c1.category_id IN (201, 202)</code>

이 쿼리는 각 고유 쌍에 대해 하나의 행이 있는 조인된 결과 집합을 반환합니다. Category_id 기준을 만족하는 원본 테이블의 행

2. 그룹 BY 및 HAVING:

대체 접근 방식은 GROUP BY 및 HAVING 절을 사용하는 것입니다.

<code class="sql">SELECT c.item_id, COUNT(*) AS cat_count
FROM item_category AS c
WHERE c.category_id IN (201, 202)
GROUP BY c.item_id
HAVING cat_count = 2</code>

이 쿼리는 item_id별로 행을 그룹화하고 카테고리 ID의 발생 횟수를 계산합니다. 각 행마다 201과 202입니다. HAVING 절은 지정된 발생 횟수(이 경우 2)가 없는 행을 필터링합니다.

위 내용은 MySQL의 행 전체에 여러 특정 열 값이 있는 항목을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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