2012-03-16 2 views
0

나는 people이라는 데이터베이스에서 사용자 ID를 가져오고 $ userid라는 변수를 지정했습니다. 동일한 사용자 ID는 info라는 다른 테이블과 연결됩니다. 때로는 일치하는 사용자 ID가 있으며 때로는 사용자 ID가 정보 테이블과 연결되어 있지 않은 경우가 있습니다. 다음 쿼리를 수행 할 때 people 테이블의 userid에 info 테이블에 일치하는 userid가 없을 때이 함수는 건너 뜁니다. 일치하는 항목이 없을 때 결과를 다시 얻을 수있는 방법이 있습니까?SQL 쿼리에서 일치하는 항목이 발견되지 않을 때 결과 반환

$club_query = $wpdb->get_results($wpdb->prepare("SELECT clubs FROM info WHERE userid = '$userid' LIMIT 1")); 

클럽이 결과에 해당되면 기능을 수행하십시오.

도움을 주시면 감사하겠습니다.

답변

1

내가 이런 종류의 일에 사용했던 몇 가지 더러운 해킹이 있습니다. 몇 가지 단점이

SELECT info.clubs FROM info RIGHT JOIN (SELECT 1) t ON info.userid = ... 

모두 접근 작동하지만이 :

SELECT MIN(clubs) clubs FROM info WHERE userid = ... 

또 다른이 RIGHT JOIN (SELECT 1) t를 사용하는 것입니다 : 하나는이 행이, MIN(...) 반환 NULL 다음없는 경우 때문에, clubs 대신 MIN(clubs)을 사용하는 것입니다/한계.

추가 편집 : 또한 빈 결과 집합 NULL로 변환

SELECT (SELECT clubs FROM info WHERE userid = ...) clubs; 

: 지금 당장 나에게 발생한 또 다른 방법은 필드 목록에서 하위 쿼리를 사용하는 것입니다. 이것 역시 약간의 제한이 있습니다.

+0

포인트를 찍었습니다. 감사! –

+0

답장을 보내 주셔서 감사합니다. null을 언급하면 ​​쿼리가 null 결과를 리턴하는지 궁금해졌습니다. 이제 모든 것이 훌륭하게 작동합니다. 고마워. –

관련 문제