2012-10-21 3 views
2

세 번째 테이블에 조인 할 쿼리가 있지만 세 번째 테이블에는 관련 레코드가 있거나 없을 수 있습니다.레코드가있는 경우 WHERE 절 추가

내가 현재 가지고 :

SELECT table1.val, table2.val, table.3.val 
    FROM 
     table1 
     LEFT JOIN table2 
      ON table1.val = table2.val 
     LEFT JOIN table3 
      ON table.3.val = table2.val 
    WHERE 
     table1.name = "name" 
     AND table3.name = 'certain name' 
    ORDER BY table1.val ASC 
부분은 WHERESELECT 절을 생략하는 방법 table3에 존재하지 않는 'certain name' 그래서 만약 내가 이것을 쓸 수

? 사실 몇 가지 필드를 더 선택하고 있지만 문제를 적절히 설명해야합니다.

답변

1

그 결과 양식을 의미하는 경우 table3.valtable2.val 동일하고 table3.name'certain name' 동일해야, 다음이 당신을 맞는 경우 table3 만, 볼 수 있어야합니다 : 결국

SELECT table1.val, table2.val, table.3.val 
FROM table1 
LEFT JOIN table2 
ON table1.val = table2.val 
LEFT JOIN table3 
ON table.3.val = table2.val AND table3.name = 'certain name' 
WHERE table1.name = "name" 
ORDER BY table1.val ASC 

을,이다 무엇 LEFT JOIN 용입니다 ...

+0

하! 그냥 쉬울거야, 응? 왜에서 어디로 이동하는 것이 발생하지 않았는지 확실하지 않습니다. 이게 내 문제를 해결, 고마워요 pp! –