2010-12-16 2 views
0

나는이 두 개의 테이블이있는 경우 :잘못된 MySQL의 출력

표를

AID1____________FID____________value1 

1------------1----------12 

7------------2-----------1 

8------------1-----------1 

표 2

AID2____________FID____________value2 

7------------1----------3.3 

나는 다음과 같은 쿼리를 실행하면 :

Select table1.value1, table2.value2, table1.AID1, table2.AID2 

from table1,table2 

where table1.FID = 1 or table2.FID = 1 

를 내가 얻을 :

value1_____________Value2_____AID1______AID2 

12----------------- 3.3--------1--------7 

1------------------3.3---------7--------7 

1------------------3.3---------8---------7 

일부 값은 NULL이어야하지만 원하는 값은 두 배가되기 때문에 원하는 출력이 아닙니다! 아무도 도와 줄 수 있습니까?

이 내 원하는 출력 : value1_ _ ____값 2_ 원조 1 __ _AID2

12----------------- 3.3--------1--------7 

1------------------NULL---------7--------NULL 

1------------------NULL---------8---------NULL 
+0

두 값은 어느 것입니까 ?? – aioobe

+0

테이블에 가입하는 것을 잊었습니다. – David

+0

결과 집합이 분명하지 않습니다. 어떤 결과를 얻어야하는지 설명하십시오. – zerkms

답변

1

Select table1.value1, table2.value2, table1.AID1, table2.AID2 

from table1,table2 

where table1.FID = 1 AND table2.FID = 1 
+0

이것은 OP가 예상했던 것이 아닌 데카르트 제작을 줄 것입니다. – zerkms

0

제가했습니다에 조회를 변경 설명하는 시나리오를 시도했습니다. 예상대로 작동하고 있습니다.

표 :

AID1 -> int 
FID -> int 
value1 -> float 

표 2 :

AID2 -> int 
FID -> int 
value2 -> float 

결과 :

value1, value2, AID1, AID2 
12,3.3,1,7 
1,3.3,7,7 
1,3.3,8,7 
NULL,3.3,NULL,7 

어떻게 당신이 그것을 실행하는?

0

나는 당신이 노조를 원한다고 생각합니다. 표 에서

선택 table1.value1, table1.AID1, 곳 table1.FID 표 2 에서 = 1

조합

선택 table2.value2, table2.AID2 곳 table2.FID = 1