2013-10-31 5 views
0

난 다음 쿼리를 가지고 :선택 쿼리의 각 행에 대한 테스트와 SQL에서

SELECT favorite_id,MO,name,b.image_id,image_path FROM buddies b,images i where [email protected] and b.image_id=i.image_id 

image_id 인 경우 친구의 필드 b.image_id은 ... 테이블 이미지에서 IMAGE_PATH를 얻기 전에 시험 B해야 0 나는 테이블 등록에서 image_id에 테이블 이미지에서 image_path를 가져와야하고 image_id가 0과 다른 경우 직접 테이블 이미지에서 image_id를 가져온다. 그래서 테이블에서 favorite_id와 image_id를 선택할 때 친구들이 모든 행에 대해이 테이블을 반복해야하고 image_id를 테스트하십시오.

아무도 도와 줄 수 있습니까? 그런

+0

당신은 등록 테이블을 언급하지만 쿼리의 일부가 아닙니다. 귀하의 설명은 혼란 스럽습니다. 테이블과 구조를 보여주는 것이 가장 좋은 방법이라고 생각합니다. 그런데 mysql을 가지고 sqlserver를 태그의 일부로 사용하는 방법은 어느 것이 옳은가요? – Edper

답변

2
SELECT favorite_id,MO,name, 
b.image_id, 
image_path = case when b.image_id ='0' then i1.image_path else i.image_path end 

FROM buddies b, registration r 
left join images i on b.image_id=i.image_id 
left join images i1 on r.image_id=i1.image_id 
where [email protected] and [email protected] 
0
SELECT favorite_id,MO,name,b.image_id, 
     case b.image_id when 0 then i.image_path else b.image_path end as image_path 
    FROM buddies b,images i 
    where [email protected] and b.image_id=i.image_id 

떨어지게 ...

당신이 필요로하는 경우

추가 선택 조건 - 다음은 여기 : SELECT CASE WHEN THEN (SELECT)

+0

0 내가 다른 선택을 써야 할 때 ... 어떻게 할 수 있습니까? – User7291

+0

MS SQL에서는 일반적으로 추가 조인 (왼쪽 조인)을 한 다음 위와 같이 "case"를 사용합니다. 당신은 그런 것을 원한다 : http://stackoverflow.com/questions/14885912/selectcase-when-then-select? – Badiboy

관련 문제