Mysql 难查询:连接参数、自连接和矛盾条件

Mysql 难查询:连接参数、自连接和矛盾条件,mysql,dql,self-join,Mysql,Dql,Self Join,我有一个数据库和一个名为translations的表 此表中有4行:id、textidea、translation和language id是每个主键的常规id textidea是单词后面的想法id,就像一个图像:当我指的是“树”时,这个想法可以翻译成其他语言 翻译是对文本思想的翻译 而语言是翻译中的语言 此表的简短函数为:textidea+语言=翻译 并非每个textidea都有每种语言的翻译:我有10种语言和1100个textidea,但只有7000个翻译 我的工作是从数据库中获取目标语言尚未

我有一个数据库和一个名为translations的表

此表中有4行:idtextideatranslationlanguage

id是每个主键的常规id

textidea是单词后面的想法id,就像一个图像:当我指的是“树”时,这个想法可以翻译成其他语言

翻译是对文本思想的翻译

语言是翻译中的语言

此表的简短函数为:textidea+语言=翻译

并非每个textidea都有每种语言的翻译:我有10种语言和1100个textidea,但只有7000个翻译

我的工作是从数据库中获取目标语言尚未翻译的每一个textidea和英语翻译

我将把它打包成一个txt文件,并能大量地将单词从英语翻译成其他语言

我的sql查询非常有效:它没有得到任何结果(空结果):

我可以在sql查询中做些什么更好? 如果可能的话,你可以做一个dql查询,因为我也在使用条令

谢谢

编辑: 如果我正在进行左联接,且入口比主表少:

---------------------
|entry 1|added entry|
---------------------
|entry 2|null       |
---------------------
我有一个空的条目:我想搜索该条目

问题: 我想要一种特殊的语言~其中de.language='de de'

但这排除了null

->我可以用参数联接吗?所以我可以把“where de.language='de-de'”放在那里,以后再搜索null?

我刚刚发现:

在“JOIN”之后是“ON”,在这里,我们可以指定连接条件,但也可以在“”中添加内容

这使得定制表成为可能,可以在何处进行定制

苏欧:

旧查询:

SELECT t.textidea,t.translation 

FROM translation AS t  
LEFT JOIN translation AS w             

ON t.textidea = w.textidea 
WHERE (t.language = 'en-US' 
   AND w.language = 'de-DE'         
   AND w.translation IS NULL            
   AND t.translation IS NOT NULL)
更改:

ON t.textidea = w.textidea AND w.language = 'de-DE'
新的工作查询:

SELECT t.textidea,t.translation 

FROM translation AS t  
LEFT JOIN translation AS w             

ON t.textidea = w.textidea AND w.language = 'de-DE'
WHERE (t.language = 'en-US' 
   AND w.translation IS NULL            
   AND t.translation IS NOT NULL)
SELECT t.textidea,t.translation 

FROM translation AS t  
LEFT JOIN translation AS w             

ON t.textidea = w.textidea AND w.language = 'de-DE'
WHERE (t.language = 'en-US' 
   AND w.translation IS NULL            
   AND t.translation IS NOT NULL)