在 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 中连接来自不同表的两个字段的主要内容,如果未能解决你的问题,请参考以下文章