A테이블
===================
PK_ID | NAME | AGE
1 KIM 32
2 PARK 26
3 LEE 33
4 CHOI 15
B테이블
======================
NO | A_PK_ID | JUMSU
1 3 100
2 4 58
두태이블은 일대일입니다만 A테이ㅂ블의 데이타가 B테이블에 꼭 있지는 않습니다
SELECT A.*, B.* FROM A LEFT OUTER JOIN B ON A.PK_ID = B.A_PK_ID
라고 햇는데1,2 데이타가 안나옵니다
전 A테이블에 잇는 데이타가 B테이블의 데이타와 무관하게 다 나왓으면 합니다
어떻게 하면 되나요?
Comment 9
-
착한넘
2015.01.02 09:38
-
문상연
2015.01.02 11:49
B테이블에 검색조건이 꼭 필요한가요?
전 단지 두 테이블을 조인해서 b테이블에 A테이블의 데이타가 잇건 없던 상관없이 조회되게 하고 싶은겁니다
-
착한넘
2015.01.02 12:39
SELECT A.*, B.* FROM A LEFT OUTER JOIN B ON A.PK_ID = B.A_PK_ID
이렇게 하시면 A테이블에 데이터는 무조건 나오는게 맞습니다~
간혹 Where절에 "WHERE b.JUMSU > 100" 이런식으로 B테이블 관련하여 넣으시는 분들이 있어 물어본겁니다.
-
문상연
2015.01.02 13:13
그런데 B테이블에 데이타가 없으면 조회가 안됩니다뭔가가 잘못됨건가요?
-
착한넘
2015.01.02 14:02
현재까지만 보면 문제가 없을것 같습니다.
1. A를 기준으로 LEFT JOIN 하셨고
2. ON절을 제외하곤 WHERE절에 B테이블 관련 조건도 없고
원 쿼리를 볼순 없나요? 고수분이 보셔야 할듯 싶습니다. ㅠ
-
문상연
2015.01.02 14:24
위쿼리가 원쿼리와 똑같습니다
테이블명만 틀릴뿐입니다
-
악마곰
2015.01.02 14:31
if object_id('tb_A') is not nulldrop table tb_Aif object_id('tb_B') is not nulldrop table tb_Bcreate table tb_A(PK_ID int,NAME NVARCHAR(30),AGE int);create table tb_B(NO int,A_PK_ID int,JUMSU decimal(15,2));insert tb_Aselect 1,'KIM',32 union allselect 2,'PARK',26 union allselect 3,'LEE',33 union allselect 4,'CHOI',15 ;insert tb_Bselect 1,3,100 union allselect 2,4,58 ;select a.*,b.* from tb_A aleft join tb_B b on a.PK_ID = b.A_PK_ID위 쿼리 복사 하셔서 데이터베이스 아무데나 해서 해보세요...문제 없이 아래와 같이 쿼리 결과 나와야 합니다.PK_ID NAME AGE NO A_PK_ID JUMSU----------- ------------------------------ ----------- ----------- ----------- ---------------------------------------1 KIM 32 NULL NULL NULL2 PARK 26 NULL NULL NULL3 LEE 33 1 3 100.004 CHOI 15 2 4 58.00 -
문상연
2015.01.02 22:03
잘 되네요 그런데 제 디비는 왜 안될끼요?
정말 고맙습니다
-
루디먼트
2015.01.03 14:55
테이블을 바꿔 썻든지 다른 조건이 있는거 아닌지 모르겠네요.
혹시 WHERE절에 B테이블 검색조건이 있지 않으신가요??