Mysql 难查询:连接参数、自连接和矛盾条件
我有一个数据库和一个名为translations的表 此表中有4行:id、textidea、translation和language id是每个主键的常规id textidea是单词后面的想法id,就像一个图像:当我指的是“树”时,这个想法可以翻译成其他语言 翻译是对文本思想的翻译 而语言是翻译中的语言 此表的简短函数为:textidea+语言=翻译 并非每个textidea都有每种语言的翻译:我有10种语言和1100个textidea,但只有7000个翻译 我的工作是从数据库中获取目标语言尚未翻译的每一个textidea和英语翻译 我将把它打包成一个txt文件,并能大量地将单词从英语翻译成其他语言 我的sql查询非常有效:它没有得到任何结果(空结果): 我可以在sql查询中做些什么更好? 如果可能的话,你可以做一个dql查询,因为我也在使用条令 谢谢 编辑: 如果我正在进行左联接,且入口比主表少: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个翻译 我的工作是从数据库中获取目标语言尚未
---------------------
|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)