【发布时间】:2015-10-07 20:43:21
【问题描述】:
考虑下面的多语言事件数据库表
events
id, title, content, ...
localizations
id, table_name, row_id, field, language, text
我的 CMS 所做的是在翻译存储在本地化表中进行翻译的情况下。 检索事件时,字段会被相应语言的本地化文本覆盖。
例如:
events
1, 'Great event', 'lorum ipsum', ...
2, 'Another event', 'lorum ipsum', ...
localizations
1, 'events', 1, 'title', 'es', 'Gran evento'
问题:是否可以构造一个 mysql 查询来检索所有事件,其本地化标题为英文,或者如果没有找到则默认?
我怀疑它必须是这样的左连接
SELECT e.id, e.title, e.content
FROM `events` e
LEFT JOIN localizations loc ON loc.row_id = e.id
但只有当 loc.field = 'title' 和 loc.language='en' 时才需要加入
【问题讨论】:
标签: mysql sql database left-join translation