TableA(未聚合)在聚合 TableB 上左连接

问题描述 投票:0回答:1

我有两张桌子

enter image description here,我想将 Table_A 左连接到 Table_B(结果:Table_A 中的所有行,仅 Table_B 中的匹配行)

要求

  • 我只需要 Table_B 中的 2 个字段(键和文本),并且必须将这 2 个字段分组。我不需要 Table_B 中的任何值。
  • 我完全需要Table_A,不需要任何聚合。连接应位于字段“Key”上。

我已经在这里尝试过这个论坛,发现另一个线程连接了聚合表,但这不起作用,因为它也聚合了 Table_A,并且在不聚合 Table_A 的情况下尝试相同的操作不起作用。

我的尝试:

Select * From TABLE-A
left join
(select TABLE-B.Key, TABLE-B.Text from TABLE-B
   group by TABLE-B.Key, TABLE-B.Text
 )
 On Left TABLE-A.Key = TABLE-B.Key
sql join aggregate
1个回答
0
投票

首先,您连接表,但您的选择返回字段值。 您也没有指出您正在使用什么数据库,该数据库可能有所不同。

这是我在 MS-Access 中所做的:

  1. 创建一个新的View(查询)来处理聚合;我称之为 vTableB:

    选择 [TABLE-B].Key, [TABLE-B].Text1 来自[表-B] GROUP BY [TABLE-B].Key, [TABLE-B].Text1;

  2. 针对表 A 和视图执行所需的联接: 选择[表-A].* 从 [TABLE-A] LEFT JOIN vTableB ON [TABLE-A].Key = vTableB.Key;

进行更改以使用您所需的字段名称(我不建议这样做,因为可能与其他关键字冲突)并查看是否获得所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.