MYSQL QUERY LEFT JOIN显示一个表中的所有数据

时间:2013-07-22 12:02:40

标签: mysql left-join multiple-tables

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中的数据是否真实。

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

如何获取真实数据?

3 个答案:

答案 0 :(得分: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子句

答案 1 :(得分: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

答案 2 :(得分:0)

LEFT JOIN将从左侧提到的表中获取所有结果。尝试JOIN而不是INNER JOIN afaik