基于LibreOffice的表关联查询求助:以Code为关联键将Table One的Quantity字段合并到Table Two
解决方案:在LibreOffice Base中关联两个表合并字段
没问题,这在LibreOffice Base里用简单的SQL关联查询就能搞定,刚好匹配你给出的需求场景:
场景回顾
你有两个表:
- TABLE ONE:包含
Code和Quantity字段 - TABLE TWO:包含
Code和Data字段
需要通过Code作为关联键,把TABLE ONE的Quantity合并到TABLE TWO中,得到包含Code、Data、Quantity的结果集。
核心SQL查询语句
因为你的示例中两个表的Code都是一一匹配的,用INNER JOIN就可以得到你想要的结果:
SELECT t2.Code, t2.Data, t1.Quantity FROM "TABLE TWO" AS t2 INNER JOIN "TABLE ONE" AS t1 ON t2.Code = t1.Code
语句说明
INNER JOIN:只返回两个表中Code完全匹配的记录,和你给出的示例结果完全一致- 别名
t1(对应TABLE ONE)、t2(对应TABLE TWO):简化代码书写,避免重复输入长表名 - 双引号包裹表名:因为你的表名包含空格,LibreOffice Base要求带空格的表名必须用双引号括起来
特殊情况处理
如果TABLE TWO中存在某些Code在TABLE ONE里没有对应的记录,你想要保留这些记录(此时Quantity会显示为空),可以改用LEFT JOIN:
SELECT t2.Code, t2.Data, t1.Quantity FROM "TABLE TWO" AS t2 LEFT JOIN "TABLE ONE" AS t1 ON t2.Code = t1.Code
在LibreOffice Base中执行的步骤
- 打开LibreOffice Base并连接到你的数据库
- 点击顶部菜单栏的
工具→SQL - 把上面的查询语句粘贴到弹出的SQL执行窗口中
- 点击
执行按钮,就能看到合并后的结果啦
内容的提问来源于stack exchange,提问作者Francesco M
相关产品推荐
相关产品推荐

