2014-11-27 1 views
0

나는 다음과 같은 쿼리가 :SQL 쿼리 왼쪽에 참여하여 어떠한 결과를 보여줍니다

SELECT u.user_id, u.username, u.email 
        hp.homepage_id 
       FROM table_u u 
       LEFT JOIN table_hp hp 
       ON (u.user_id = hp.user_id) 
      WHERE u.blocked = 'N' 
       AND u.email LIKE 'someemailaddress' 

나는 USER_ID 컬럼에 결합하고, 지정된 이메일 주소가 누락되어 있지는 않은가을 위해 나는 두 속성이 동일한 그래서 난 결과를 얻어야한다 알고을하지만, 여전히 나는 어떤 결과도 얻지 못한다 ... 그래서이 쿼리에 무엇이 잘못 되었는가?

+0

테이블의 샘플 데이터를 보여주십시오. – Jens

+3

문제를 설명하는 예제 행을 게시하십시오. 나는'LIKE'에 와일드 카드가 없다는 것을 알기 때문에,'u.email'의 부분 일치를 원하면 그걸 얻지 못할 수도 있습니다. –

+0

yoru LIKE 조건에 와일드 카드를 사용합니까? –

답변

0

아래 참조 ... 응용 프로그램 데이터 이전 (버그) 버전에 있었던 것 같다 - 그리고 LIKE 절에서 후 이전에 '%'를 넣어 괜찮은 트리밍 등을하지 않고 저장했습니다. 문제는 필드가 공백으로 저장되었습니다. ...

어리 석다 ... st였던 실제 데이터를 확인 했어야합니다. ...

0

LEFT JOIN없이 쿼리를 시도 했습니까 ??

SELECT u.user_id, u.username, u.email 
FROM table_u u 
WHERE u.blocked ='N' 
AND u.email LIKE 'someemailaddress' 

결과가 있습니까? 원인 LEFT JOIN은 "기본 테이블"의 기존 데이터에 대한 데이터를 추가합니다. LEFT JOIN이 table_hp에서 user_id를 찾지 못한 경우 위에 쿼리의 일부가있는 경우 일부 데이터가 반환되어야합니다.

1

요점은 일부 데이터가 데이터베이스에 저장하는 방법이었다

SELECT u.user_id, u.username, u.email 
        hp.homepage_id 
       FROM table_u u 
       LEFT JOIN table_hp hp 
       ON (u.user_id = hp.user_id) 
      WHERE u.blocked = 'N' 
       AND u.email LIKE '%someemailaddress%' 
관련 문제