加入两个表并替换值

时间:2017-11-22 03:01:51

标签: android sql sqlite

我有一个名为EnglishText的表,其中包含本地化字符串以及许多其他表(一个示例是“建筑物”表),这些表具有映射到英语的键的属性(例如名称,描述等)本地化表中的字符串。

EnglishText表 Screenshot of EnglishText table

Tag列是键,Text列包含我想要的英文字符串。

建筑物表 Screenshot of Buildings table

Name,PrereqTech和PrereqCivic等列映射到EnglishText表中的Tag列。

我希望能够运行查询,例如

SELECT * FROM Buildings;

用它返回Name,PrereqTech和其他字段中的英文文本,而不是EnglishText表的键。这可能吗?

2 个答案:

答案 0 :(得分:1)

是,假设/使用: -

enter image description here

和: -

enter image description here

然后

<强> SELECT Name, _text FROM Buildings JOIN english_text ON name = _tag

导致: -

enter image description here

或者

<强> SELECT * FROM Buildings JOIN english_text ON name = _tag OR PreReqtech = _tag

导致: -

enter image description here

但是,我怀疑你可能希望每个构建一行包含所有映射(我怀疑这可能是可能的,但由于映射到english_text表中的单个列可能很复杂)

答案 1 :(得分:0)

根据结构,您可能希望创建用户定义的函数查找以将标记转换为英文文本。然后将该函数应用于选择中的每个列。