집 >데이터 베이스 >MySQL 튜토리얼 >MySQL LEFT JOIN과 함께 WHERE 절을 올바르게 사용하여 모든 범주 및 사용자 구독을 검색하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!