You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLite中拼接两个不同表中的字段?

没问题,针对你提到的两种表结构场景,我给你整理了对应的SQL实现,直接就能满足把两个表的Name字段拼接成XXX-XXX格式的需求:

场景1:两个表均以Id作为关联字段

因为两个表的Id完全匹配,我们用INNER JOIN关联两张表,再用对应数据库的字符串拼接函数把两个Name连起来就行,主流数据库的写法如下:

MySQL/MariaDB

SELECT 
    t1.Id,
    CONCAT(t1.Name, '-', t2.Name) AS Name
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.Id = t2.Id;

PostgreSQL

SELECT 
    t1.Id,
    t1.Name || '-' || t2.Name AS Name
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.Id = t2.Id;

SQL Server

SELECT 
    t1.Id,
    t1.Name + '-' + t2.Name AS Name
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.Id = t2.Id;

场景2:表2更新为Table1_id作为关联字段

这种情况只是关联条件变了,核心逻辑不变,只需要把JOIN的匹配条件改成t1.Id = t2.Table1_id就行:

MySQL/MariaDB

SELECT 
    t1.Id,
    CONCAT(t1.Name, '-', t2.Name) AS Name
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.Id = t2.Table1_id;

PostgreSQL

SELECT 
    t1.Id,
    t1.Name || '-' || t2.Name AS Name
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.Id = t2.Table1_id;

SQL Server

SELECT 
    t1.Id,
    t1.Name + '-' + t2.Name AS Name
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.Id = t2.Table1_id;

小提示

由于你明确说两个表的关联ID完全一致,INNER JOIN是最适合的,它会精准匹配每一对关联记录,不会出现多余或遗漏的结果。如果后续有ID不匹配的场景,可以根据实际需求换成LEFT JOIN(保留表1所有记录)或RIGHT JOIN(保留表2所有记录)。

内容的提问来源于stack exchange,提问作者Bloggrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 03:39:07