gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:37:23 24 4
gpt4 key购买 nike

我想知道是否有人可以帮忙。

请看下面:

SELECT id,name FROM words;

ID、姓名

1,仍然

2、闪闪发光

3、汽水

SELECT * from translation;

words_id、lang_id、翻译

1, 1, A仍然

1, 2, B仍然

2, 1, 闪闪发光

我需要如下结果:

id、名称、lang_id、翻译

1,静止,1,静止

2,闪闪发光,1,AS闪闪发光

3、泡沫、NULL、NULL

我尝试过的查询

SELECT id,name,lang_id,translation FROM words LEFT JOIN translation ON words_id=id AND 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

关于MySQL Join 需要显示 LEFT 表中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45177508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com