我有一个包含文本标签翻译版本的表格。
语言:id | term_Key | lang_EN | lang_FR | lang_PT
如果翻译版本以特定语言提供,则使用它,但如果不是,则使用英语术语。
SELECT term_Key,
COALESCE(lang_".$lng.", lang_EN) AS def
FROM languages
我正在根据项目ID添加另一个包含自定义覆盖的表 custom_languages 。
custom_languages:id | project_id | term_Key | lang_custom
现在我需要将它添加到我之前的查询中。如果找到特定项目的自定义术语 - 使用它,如果没有,请执行先前的查询。
SELECT languages.term_Key,
COALESCE(
custom_languages.custom_languages,
languages.lang_".$lng.",
languages.lang_EN) AS def
LEFT JOIN custom_languages ON (languages.term_Key = custom_languages.term_Key)
FROM languages
如何在此处合并项目ID?
WHERE custom_languages.project_id = $proj
我想我可以运行两个单独的查询,首先检查是否有任何自定义术语,如果是,则将部分插入到查询中,使其看起来像上面的查询#2,如果没有'找到任何自定义术语,保持查询不变。它似乎不是优雅的解决方案,但它可能会起作用,但我确信必须有更好的方法。