2013-12-18 2 views
0

Table_A의 모든 데이터를 Table_B 테이블의 오른쪽에 표시하려고합니다. TABLE_A :이 같은 두 테이블이SQL에서 LEFT OUTER JOIN을 사용할 때의 문제

ID FAC_ID QUESTION  ACTION_ITEM 
1  222  what?  do... 
5  245  when?  make.. 
9  325  vcc   kjy 
11  145  kne   juy 

TABLE_B :

ID FAC_ID QUESTION  ACTION_ITEM 
1    what?   do... 
5  245  when?  make.. 
9    vcc   kjy 
11    kne   juy 

만에 : 난 내 SQL 문을 실행하면

ID FAC_ID QUESTION  ACTION 
5  245  when?  make.. 

, 나는 이런 식으로 뭔가를 보여주고 싶은 내 코드는 ID = 5 인 경우 한 행의 데이터 만 표시합니다. 여기 내 코드는 다음과 같습니다.

select A.ID, B.FAC_ID, A.QUESTION, A.ACTION_ITEM 
FROM TABLE_A A LEFT JOIN 
TABLE_B B ON A.ID=B.ID 
WHERE FAC_ID = 245 
+0

귀하의 절은 말하고있다 그것은 오직 하나의 기록만을 보여줍니다. FAC_ID가 두 테이블 모두에 있고이 쿼리가 작동하지 않기 때문에이 문제를 해결해야합니다. – liebs19

답변

0

이해가되지 않습니다 쿼리 - 당신의 절은 ID = 5

난 당신이해야 할 수도 있습니다 생각 데이터를 기반으로 한 행이 제한됩니다 여기서

SELECT A.ID, B.FAC_ID, A.QUESTION, A.ACTION_ITEM 
FROM TABLE_A A 
LEFT OUTER JOIN TABLE_B B 
    ON A.ID=B.ID 

ID = 5 (FAC_ID = 5가 질문에서 오타라고 가정)를 필터링하면 한 행만 표시됩니다.

1

WHERE 절에서 테이블 B의 열을 참조하고 있습니다. JOIN으로 이동하십시오.

사실, 게시 한 예는 FAC_ID가 모호하기 때문에 컴파일되지 않습니다.

+0

죄송합니다. FAC_ID를 업데이트했습니다. – moe

0

으로 선회하고 내부는 B.FAC_ID은 = 245은 어떤 B.FAC_ID가 null로, 기본적으로 조인 innner로 바뀝니다 제거 및

select A.ID, B.FAC_ID, A.QUESTION, A.ACTION_ITEM 
FROM TABLE_A A 
LEFT JOIN TABLE_B B 
    ON A.ID = B.ID 
    AND B.FAC_ID = 245 

에 가입된다

관련 문제