2013-07-22 59 views
3
SELECT 
A.CODE, 
B.NOTE, 
C.NUMBER 

FROM (A 
LEFT JOIN B 
ON A.CODE = B.CODE 
LEFT JOIN C 
ON A.CODE = C.NUMBER 
) 

WHERE C.ID = B.ID 

需要顯示一些結果從3個表合併,但我的研究結果表明,從表B中還報告所有的數據,如果數據不是從表C.MySQL查詢LEFT JOIN顯示所有資料從一個表

Table A.code 
1 
2 
3 

Table B.code 
1 
2 
3 

Table B.note 
pippo 
paperino 
pluto 

Table C.number 
1 

在理想情況下應該有表示

1 1 pippo 

但是在結果中,示出一個結果:

1 1 pippo 
1 1 paperino 
1 1 pluto 

如何獲取真實數據?

+0

你所需要的就是'INNER JOIN's –

+0

是什麼在你ID'WHERE'條件? – Uriil

回答

3
SELECT 
A.CODE, 
B.NOTE, 
C.NUMBER 

FROM A 
INNER JOIN B ON A.CODE = B.CODE 
INNER JOIN C ON A.CODE = C.NUMBER 

不需要WHERE cluse

0

LEFT JOIN會從左側中提到的表中的所有結果。嘗試JOIN,而不是這是一個INNER JOIN據我所知

1

您需要的INNER JOIN

SELECT 
A.CODE, 
B.NOTE, 
C.NUMBER 

FROM C 
INNER JOIN B on C.Number=B.Code 
INNER JOIN A on B.Code=A.Code