i18n数据库表通过文化获得字段的值

时间:2012-04-20 12:03:00

标签: database internationalization translation

我正在将我的申请国际化。假设我有一张这样的表:

task_priority

id | description

然后我创建了一个名为table_priority_i18n的表:

id | culture | description

其中id和culture是主键,id是task_priority id的外键。

要获得描述,我正在表之间进行左连接

select tp.id, t.description 
from task_priority tp 
  left join task_priority_i18n t 
    on t.id = tp.id and t.culture = :culture.

但是我想更改我的查询,所以如果i18n表中没有翻译,它会返回基表中的值。

我知道我可以删除该列,我只使用i18n表,但目前工作量太大。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

select tp.id, NVL( t.description, tp.description)
from task_priority tp 
  left outer join task_priority_i18n t 
    on t.id = tp.id 
    and t.culture = :culture