在 SQLite 中连接来自不同表的两个字段

Posted

技术标签:

【中文标题】在 SQLite 中连接来自不同表的两个字段【英文标题】:Concatenate two fields from different tables in SQLite 【发布时间】:2021-10-13 04:19:45 【问题描述】:

如何在 SQLite 中连接来自两个不同表的两个字段?

说我有:

Id  Name                
----------  ------
1           John         
2           Doe

Id    Name                
----------  ------
1           SchoolA
2           SchoolB

预期输出

Id   Name                
----------  ------
1           John-SchoolA         
2           Doe-SchoolB

注意:两个表的 ID 相同。

更新:

表 1

 Id        Name                
----     -------
 1         John         
 2         Doe

表 2

Table1_id   Name                
---------   ------
1           SchoolA
2           SchoolB

注意:两个表的 ID 相同(就值而言)。

【问题讨论】:

我不太明白你想做什么,但尝试使用INNER JOIN 两张表的ID相同吗? 那它们有什么关系呢?我猜 StudentId 与 SchoolId 无关。为什么要将 John 与 SchoolA 连接起来? 是的,它们确实相关。让我更新帖子。 【参考方案1】:

您必须根据 id 连接表并连接匹配行的名称:

SELECT t1.Id, 
       t1.Name || '-' || t2.Name AS Name
FROM table1 t1 INNER JOIN table2 t2
ON t2.Id = t1.Id

请参阅demo。

【讨论】:

谢谢,@forpas。 t1.Id 是否适用于 SQLite 3?我收到一个错误,没有这样的列:t1.Name @Bloggrammer 检查我的回答中的演示。您是否照原样复制代码? 我让它工作了,谢谢。尽管它们在值方面具有相同的 Id,但属性名称却不同。我用正确的属性名称更新了您的最后一行查询。 @Bloggrammer 在您的问题中,两个表中的列具有相同的名称Name 是的。但是id不一样。表 1 是 Id 而表 2 id 是 Table1_id

以上是关于在 SQLite 中连接来自不同表的两个字段的主要内容,如果未能解决你的问题,请参考以下文章

连接来自不同数据库的同名表的结果

[15]SQL 连接(JOIN)

sql 不同表的排序

SQL间的两个数据库表的同步更新

SQLite中怎么将两个字段字符串合并连接为一个

SQLite中怎么将两个字段字符串合并连接为一个