[英]MySQL Left Outer Join with Count from joined table, Show all records
[英]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.