gpt4 book ai didi

MySQL 2 左连接并且没有返回数据

转载 作者:行者123 更新时间:2023-11-29 02:01:04 25 4
gpt4 key购买 nike

我使用以下 SQL 获取一些我想翻译的键:

SELECT * FROM translate_keys 

LEFT JOIN translations

ON translate_keys.id = translations.translate_key_id

LEFT JOIN languages

ON languages.id = translations.language_id

WHERE languages.is_default = 1;

如果键的翻译为空,我将得不到返回结果(语言有内容)!我知道这是因为语言与翻译无关。我能做些什么?我认为 left join 就足够了!

最佳答案

您加入的方向错误。您希望语言表成为您的主表。试试这个:

SELECT * 
FROM languages
LEFT JOIN translations ON languages.id = translations.language_id
LEFT JOIN translate_keys ON translate_keys.id = translations.translate_key_id
WHERE languages.is_default = 1;

或者,如果您试图返回所有键但没有收到任何结果,那是因为您的 WHERE 标准——正如@Oswald 正确指出的那样,将其移至您的 JOIN 并且您应该获得记录(显然没有翻译或语言):

SELECT * 
FROM translate_keys
LEFT JOIN translations ON translate_keys.id = translations.translate_key_id
LEFT JOIN languages ON languages.id = translations.language_id AND languages.is_default = 1;

关于MySQL 2 左连接并且没有返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14586356/

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