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 个表的组合结果,但如果表 C 中的数据不是真实的,我的结果也会显示表 B 中报告的所有数据。

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

如何获取真实数据?

4

3 回答 3

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 线索

于 2013-07-22T12:07:04.103 回答
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
于 2013-07-22T12:08:36.147 回答
0

LEFT JOIN 将从左侧提到的表中获取所有结果。尝试 JOIN 代替,这是一个 INNER JOIN afaik

于 2013-07-22T12:07:34.673 回答