>데이터 베이스 >MySQL 튜토리얼 >MySQL LEFT JOIN과 함께 WHERE 절을 올바르게 사용하여 모든 범주 및 사용자 구독을 검색하는 방법은 무엇입니까?

MySQL LEFT JOIN과 함께 WHERE 절을 올바르게 사용하여 모든 범주 및 사용자 구독을 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-06 14:11:15664검색

How to Correctly Use WHERE Clauses with MySQL LEFT JOINs to Retrieve All Categories and User Subscriptions?

MySQL: WHERE 절을 사용하여 테이블 JOIN

MySQL 데이터베이스에서 여러 테이블로 작업할 때 검색을 위해 JOIN을 수행해야 하는 경우가 많습니다. 관련 데이터. 그러나 LEFT JOIN에 WHERE 절을 추가하면 복잡해질 수 있습니다.

문제:

다음이 구독하는 카테고리를 포함하여 카테고리 테이블에서 모든 카테고리를 검색하려고 합니다. 단일 쿼리를 사용하여 user_category_subscriptions 테이블의 특정 사용자. 그러나 초기 LEFT JOIN에 WHERE 절을 추가하면 원하는 결과가 반환되지 않습니다.

초기 쿼리:

SELECT *
FROM categories
LEFT JOIN user_category_subscriptions
     ON user_category_subscriptions.category_id = categories.category_id

해결책:

원하는 데이터를 검색하려면 WHERE 절을 WHERE 절이 아닌 JOIN 조건입니다. 이렇게 하면 WHERE 조건을 충족하는 행만 조인에 포함됩니다.

SELECT *
FROM categories
LEFT JOIN user_category_subscriptions ON
    user_category_subscriptions.category_id = categories.category_id
    AND user_category_subscriptions.user_id = 1  -- Example user ID

설명:

JOIN 절에 WHERE 조건을 배치하면 user_category_subscriptions의 어떤 행이 카테고리의 각 행에 결합되는지 지정합니다. 이렇게 하면 특정 사용자(이 예에서는 user_id = 1)에 대한 행만 조인에 포함됩니다.

결과는 카테고리의 user_category_subscriptions 열에 NULL 값이 포함된 카테고리의 모든 카테고리 목록입니다. 지정된 사용자가 구독하지 않았습니다.

위 내용은 MySQL LEFT JOIN과 함께 WHERE 절을 올바르게 사용하여 모든 범주 및 사용자 구독을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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