我有一个小麻烦,因为很久以前我研究过数据库和查询。
例如,我将有两个用于 cd:s 的表,一个包含数据,另一个包含替代翻译。 在 CD 表中我有原始语言,它看起来像这样
Table for CDs (cds):
id | name | language
-----------------------
1 | aaa | en
2 | bbb | en
3 | ccc | fi
Table for languages (languages):
cd_id | language | name
-----------------------
1 | fi | AAA
1 | de | AAACHTUNG
3 | en | CCC
现在,我想获得所有这些 cd:s,例如德语,如果没有翻译,我希望它是原始语言...
编辑: 德语 = de
因为只有一个德文译本(在 CD #1 上),我希望 cd 2 和 3 的原名..在这种情况下是英语和芬兰语...
我该怎么做?
编辑 2: 在这种情况下,当我要求“de”时,我会得到:
AAACHTUNG
bbb
ccc
如果我要求'en',我会得到
aaa
bbb
CCC
等等……
最佳答案
这应该可以解决问题(SQL Fiddle):
select coalesce(l.name, c.name)
from cds c
left join languages l on l.cd_id = c.id
and l.language = 'de';
关于MySQL,从不同的表中选择...如果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13312506/