情况:
我有主表,让我们称之为MainTable
。
+---------+----------+----------+----------+
| Id (PK)| Title | Text | Type |
+---------+----------+----------+----------+
| 1 | Some Text|More Stuff| A |
| 2 | Another | Example | B |
+---------+----------+----------+----------+
我有第二个表叫做TranslationsTable
,其中 Id 字段是MainTable
行 Id 的表示(没有外键,因为它可以引用不同的表), ObjType 是 ObjectType (与表同名), FieldName 是ObjecType 中的字段名称和值具有 ObjType 表中 FieldName 值的转换值。
+---------+-----------+-----------+------------+----------+
| Id | ObjType | FieldName | Value | Language |
+---------+-----------+-----------+------------+----------+
| 1 | MainTable | Title | Algum Texto| PT |
| 1 | MainTable | Text | Mais Coisas| PT |
+---------+-----------+-----------+------------+----------+
因为我需要在翻译后的字段中搜索,我想我可以使用 aTEMPORARY TABLE
来这样做,但随后出现了“我应该使用哪个 SELECT 查询?”的问题。我阅读了一些关于数据透视表查询的帖子,但我真的不知道如何构建查询,所以我的临时表类似于
+---------+------------+------------+----------+
| Id (PK)| Field_1 | Field_2 | Field_3 |
+---------+------------+------------+----------+
| 1 | Algum Texto| Mais Coisas| A |
+---------+------------+------------+----------+
谢谢你。
编辑:
我接受了 AD7six 的答案,因为 MainTable 中的 500.000 个条目和 Translations 中的 1.500.000 个条目大约比另一个快 30 倍。