2014-07-21 3 views
0

친구 요청이 필요한 사이트를 개발하고 있습니다. 내가하고 싶은 일은 로그인 한 사용자 검색과 결과에서 일부 사람이 이미 친구이거나 친구 인 경우입니다.하지만 그것을하는 데 어려움을 겪고 있습니다.예 경우 열을 확인하십시오

SELECT CASE WHEN resp_email = 'Yes' THEN 'Friend' ELSE 'Send Request' END as Answer 
FROM dbo.profile 
INNER JOIN friends On profile.email = MMColParam 
WHERE fname LIKE %varsearch% 
ORDER BY fname ASC 

여러분이 내 질문을 이해할 수 있기를 바랍니다.

+1

를 프레임의

다른 방법은 아직 아니다? – Ben

+0

의미는 – blay

+0

입니다. 예기치 못한 결과를 게시하고 쿼리 결과와 함께 실제 결과를 게시하십시오. 예를 들어, @Anand가 사용자에 로그인되어 있고 친구를 검색하고 일부 사용자가 이미 예일 때 잘못된 부분을 보았습니다. – Recursive

답변

0

SELECT 
    CASE WHEN ISNULL(resp_email, 'No') = 'No' THEN 'Send Request' ELSE 'Friend' END as Answer 
FROM 
    dbo.profile p 
    LEFT JOIN friends f On p.email = f.[CurrentUserIDCol] 
    AND f.[CurrentUserIDCol] = 'CurrentUserID' 
WHERE 
    fname LIKE %varsearch% 
ORDER BY fname ASC 

힌트를보십시오 : 모든 프로파일을 선택, 왼쪽 확실히 모든 프로파일 레코드가 선택되어 있는지 확인하기 위해 가입 할. JOIN (친구 테이블)의 오른쪽에있는 NULL을 확인하십시오. NULL 경우, 친구는 "수습"의미 하는가 어떤 조건

CASE WHEN resp_email IS NOT NULL AND resp_email = 'Yes' THEN 'Friend' ELSE 'Send Request' END Answer 
+0

덕분에 보스도 완벽하게 작동했습니다. 신의 축복 – blay

관련 문제