繁体   English   中英

MySQL Join需要显示LEFT表中的所有记录

[英]MySQL Join needs to show all records from LEFT table

我想知道是否有人可以提供帮助。

请看下面:

SELECT ID,名称由单词组成;

姓名

1,仍然

2,闪闪发光

3,菲兹

从翻译中选择*;

words_id,lang_id,翻译

1,1,AStill

1、2,BStill

2,1,ASparkling

我需要如下结果:

id,name,lang_id,翻译

1,Still,1,AStill

2,Sparkling,1,ASparkling

3,Fizzy,NULL,NULL

我尝试过的查询

选择ID,名称,lang_id,从单词LEFT JOIN转换为words_id = id和lang_id = 1的翻译;

http://sqlfiddle.com/#!9/f544b/3

非常感谢

您的条件lang_id=1会将您的LEFT JOIN变成INNER JOIN 原因是当不满足条件时(即translation表中没有条目),它将不会显示该条件。 如果要在左侧表格中显示所有内容,请删除条件lang_id=1

SELECT id,name,lang_id,translation 
FROM words 
LEFT JOIN translation ON words_id=id

如果需要条件,可以将其放在子查询中。

SELECT id,name,lang_id,translation 
FROM words w
LEFT JOIN (
    SELECT * 
    FROM translation
    WHERE lang_id = 1
) t ON t.word_id = w.id

暂无
暂无

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

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