我有一张有城市的桌子:
示例数据(city_id,名称,语言代码):
如何获取特定语言的所有城市(即de),但如果没有该语言的城市翻译,我希望以默认语言(即英语)为该行提取翻译。
因此,语言代码“de”的结果应该是这样的:
数据库:MySQL
答案 0 :(得分:2)
我通常更喜欢使用JOIN而不是内部选择,所以这是第二个选项:
SELECT c.city_id,
IF(c2.name IS NULL,c.name,c2.name) 'name',
IF(c2.languagecode IS NULL, c.languagecode, c2.languagecode) 'languagecode'
FROM cities c
LEFT JOIN cities c2 ON c.city_id = c2.city_id AND c2.languagecode = 'de'
WHERE c.languagecode = 'en'
GROUP BY c.city_id