【发布时间】:2019-09-22 15:04:20
【问题描述】:
我有一个从 csv 文件构建的关系表,其中包含每行上的外部键。
表结构:
| id | tree/nome | tree/regioni/0 | .... | tree/regioni/n
“n”等于36!!! 我已经从“SELECT/DINSTICT”构建了一个表“regions”,并在其上添加了一个 id;
现在我需要构建另一个表来提取“外部键”“tree/regioni/n”以及每行的“id”。
我发现实现这一点的不明智的方法是从每个“树/区域/n”的 SELECT/UNION 构建表:
SELECT `id`,`tree/regioni/0`
FROM `trees` WHERE 1
UNION
SELECT `id`,`tree/regioni/1`
FROM `trees` WHERE 1
[.....]
UNION
SELECT `id`,`tree/regioni/N`
FROM `trees`
WHERE 1
【问题讨论】:
-
在我的脑海中,你可能没有在这里使用最佳的桌子设计。如果
n值在单个列中,但分布在不同的记录中,您可以使用简单的WHERE子句进行限制。 -
是的,这是在 mysql 中执行 unpivot 操作的标准方法。联合查询有什么问题?