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  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 は、左側に記載されているテーブルからすべての結果を取得します。代わりに、INNER JOIN afaik である JOIN を試してください

于 2013-07-22T12:07:34.673 に答える