简体   繁体   English

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

[英]MYSQL QUERY LEFT JOIN SHOW ALL DATA FROM ONE TABLE

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 

Need to show some results combined from 3 tables, but my results show all data from table B reported also if the data isn't real from table C. 需要显示来自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

Ideally there should be one result showing 理想情况下应该有一个结果显示

1  1    pippo

but in results it is shown: 但结果显示:

1  1    pippo
1  1    paperino
1  1    pluto

How can I get the real data? 我如何获得真实数据?

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

no need for WHERE cluse 不需要WHERE cluse

You need INNER JOIN 你需要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

LEFT JOIN will take all results from the table mentioned on the left side. LEFT JOIN将从左侧提到的表中获取所有结果。 Try JOIN instead which is an INNER JOIN afaik 尝试JOIN而不是INNER JOIN afaik

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM