>  Q&A  >  본문

빈 필드를 필터링하기 위해 where 절을 사용하는 SQL 왼쪽 조인

<p>두 개의 테이블이 있습니다. 하나는 Users 테이블이고 다른 하나는 Token 테이블입니다. 이 두 테이블을 조인하여 어떤 사용자가 토큰을 확인했는지 확인하지 않았는지 확인하고 싶습니다. 사용자 ID가 포함된 토큰 테이블에 외래 키가 있습니다. </p> <p>이제 Left 조인을 사용하여 사용자 ID를 조인하고 유효성 검사가 없는지 확인하려고 합니다. 쿼리문은 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">이름 선택, 확인됨 FROM 사용자 LEFT JOIN 토큰 ON users.ID = 토큰.UID 확인된 곳 = false</pre> <p>다음과 같은 두 개의 테이블이 있다고 가정해 보겠습니다.</p> <pre class="brush:php;toolbar:false;">ID 이름 | 0 | 1 |샐리 2 | 데이브 3 | 존</pre> <p>그러면 토큰 테이블은 다음과 같습니다.</p> <pre class="brush:php;toolbar:false;">ID UID | 0 | 1 | 1 | 2 | 2 | 3 | 1</pre> <p>보시다시피 Joe는 두 번째 테이블에 레코드가 없습니다. 나는 이 두 테이블을 조인하고 싶습니다. Joe가 두 번째 테이블에 레코드가 없더라도 false/null로 처리되기를 원합니다. 인증되지 않은 사용자를 찾기 위해 쿼리를 실행하면 2개의 데이터 항목만 반환됩니다. </p> <pre class="brush:php;toolbar:false;">이름 확인됨 | 샐리 | 0 데이브 |0</pre> <p>where 절을 제거하면 결과는 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">이름 확인됨 | 샐리 | 0 데이브 | 0 존 | 1 조 | NULL</pre> <p>보시다시피 Joe는 맨 아래에 null 값이 있지만 저는 이 값이 검증되지 않은 것으로 처리되기를 원합니다. 다음 데이터를 얻으려면 쿼리를 어떻게 작성해야 합니까?</p> <pre class="brush:php;toolbar:false;">이름 확인됨 | 샐리 | 0 데이브 | 0 조 | NULL</pre> <p>또는 다음 쿼리 문만 사용하면 결과는 3입니다. 현재 쿼리 결과는 2입니다. </p> <pre class="brush:php;toolbar:false;">SELECT 개수(*) FROM 사용자 LEFT JOIN 토큰 ON users.ID = 토큰.UID 확인된 곳 = false</pre> <p><br /></p>
P粉511985082P粉511985082433일 전505

모든 응답(1)나는 대답할 것이다

  • P粉322106755

    P粉3221067552023-08-14 13:23:45

    으아아아

    회신하다
    0
  • 취소회신하다