ЗАПРОС MYSQL LEFT JOIN ПОКАЗАТЬ ВСЕ ДАННЫЕ ИЗ ОДНОЙ ТАБЛИЦЫ

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

Как я могу получить реальные данные?


person user2239318    schedule 22.07.2013    source источник
comment
Здесь вам нужно INNER JOINs   -  person xlecoustillier    schedule 22.07.2013
comment
Что такое ID в вашем WHERE состоянии?   -  person Uriil    schedule 22.07.2013


Ответы (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

person mirkobrankovic    schedule 22.07.2013

Вам нужно ВНУТРЕННЕЕ СОЕДИНЕНИЕ

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
person valex    schedule 22.07.2013

LEFT JOIN возьмет все результаты из таблицы, указанной слева. Вместо этого попробуйте ПРИСОЕДИНИТЬСЯ, что на самом деле является ВНУТРЕННИМ ПРИСОЕДИНЕНИЕМ.

person Jens    schedule 22.07.2013