gpt4 book ai didi

MYSQL 非规范化表查找

转载 作者:行者123 更新时间:2023-11-29 09:01:27 25 4
gpt4 key购买 nike

Stack Overflow 的各位旅行者大家好。除了用图片更好地解释我的意思之外,我不完全确定如何问这个问题。如果偶然在其他地方有人问过这个问题而我未能找到它,我深表歉意。

我有 2 个表 tableA 和 tableB。 TableA 包含标记为 id 和 displayName 的列,其中有几十个项目(为简单起见,我们假设只有 5 个)。 ID 列是唯一的并且自动递增,它也是搜索的主键。第二个表 (TableB) 也包含该项目的 id,而且还包含对 TableA id 的 4 个引用以及一些不相关的无关信息。所以它看起来像这样:

TableA
-------------------------
| id | displayName |
-------------------------
| 1 | itemA |
| 2 | itemB |
| 3 | itemC |
| 4 | itemD |
| 5 | itemE |
-------------------------

TableB
--------------------------------------------------------
| id | name | varA | varB | varC | varD |
--------------------------------------------------------
| 1 | elm1 | 3 | 4 | 2 | 5 |
| 2 | elm2 | 4 | 5 | 2 | 1 |
| 3 | elm3 | 1 | 4 | 3 | 2 |
| 4 | elm4 | 2 | 1 | 5 | 4 |
| 5 | elm5 | 3 | 4 | 5 | 1 |
--------------------------------------------------------

我当前有一个查询,它将折叠值并为我提供所需的信息:SQL:从表 B tB 中选择 tB.name、tB.varA、tB.varB、tB.varC、tB.varD按 tB.name 分组

现在我想做的不是让 varA、varB 等显示为数字,而是让数据与 TableA 相关并插入 displayName。所以而不是

Result
-----------------------------------------------
| name | varA | varB | varC | varD |
-----------------------------------------------
| elm1 | 3 | 4 | 2 | 5 |
| elm2 | 4 | 5 | 2 | 1 |
-----------------------------------------------

它会显示:

Result
-----------------------------------------------
| name | varA | varB | varC | varD |
-----------------------------------------------
| elm1 | itemC | itemD | itemB | itemE |
| elm2 | itemD | itemE | itemB | itemA |
-----------------------------------------------

最佳答案

分组后您只需要进行 4 次联接。

附注我不明白,为什么你在 tableB 中按名称对结果进行分组。

假设您不必以这种方式进行分组(在其他情况下其他值没有多大意义):

SELECT b.name,
aa.displayName as varA,
ab.displayName as varB,
ac.displayName as varC,
ad.displayName as varD
FROM tableB as b
JOIN tableA as aa ON b.varA = aa.id
JOIN tableA as ab ON b.varB = ab.id
JOIN tableA as ac ON b.varC = ac.id
JOIN tableA as ad ON b.varD = ad.id;

关于MYSQL 非规范化表查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com