특정 열 값을 사용하여 여러 행에 걸쳐 발생하는 MySQL ID 선택
특정 열 내에서 두 개 이상의 특정 값을 만족하는 항목을 식별하는 것은 다음과 같습니다. MySQL에서는 도전적입니다. 다음 테이블 구조를 고려하십시오.
+-----------------------+ | item_id | category_id | +-----------------------+ | 1 | 200 | | 1 | 201 | | 1 | 202 | | 2 | 201 | | 2 | 202 | | 3 | 202 | | 3 | 203 | | 4 | 201 | | 4 | 207 | +-----------------------+
추가 카테고리와 잠재적으로 연관되어 있음에도 불구하고 지정된 두 카테고리 모두에 속하는 항목만 선택하는 것이 목표입니다.
비효율적인 솔루션:
효과적인 해결 방법:
Self-Join:
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 = 201 AND c2.category_id = 202
이 방법은 공통 열(item_id)을 기반으로 동일한 테이블의 행을 조인하여 여러 행과 해당 값을 비교할 수 있습니다.
GROUP BY:
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
GROUP BY 함수를 활용하는 이 접근 방식은 각 item_id에 대한 고유 카테고리 값의 수를 계산합니다. 지정된 카테고리 수(이 경우 2개)와 동일한 cat_count를 가진 항목이 선택됩니다.
결론:
두 방법 모두 원하는 기준을 충족하는 항목을 효과적으로 식별합니다. . 둘 중 하나를 선택하는 것은 특정 요구 사항과 데이터베이스 성능 고려 사항에 따라 달라집니다.
위 내용은 행 전체에 여러 특정 열 값이 있는 MySQL ID를 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!