Java 根据从另一个表中选择的结果在表中插入
我有两个名为Java 根据从另一个表中选择的结果在表中插入,java,sql,liquibase,Java,Sql,Liquibase,我有两个名为Shop和Location 表Shop有一列name 表位置有一列说明 对于table shop的每一行,我希望在表位置插入一行,该行遵循以下结构: Location.description = Shop.name + "-Location" 因此,对于每个店铺,我想插入一个具有 description=Shop.name.concat("-Location") 请告诉我如何编写一个sql查询来解决此问题。您使用插入。选择。大概你想要这样的东西: INSERT INTO lo
Shop
和Location
- 表
有一列Shop
name
- 表
有一列位置
说明
Location.description = Shop.name + "-Location"
因此,对于每个店铺,我想插入一个具有
description=Shop.name.concat("-Location")
请告诉我如何编写一个sql查询来解决此问题。您使用
插入。选择
。大概你想要这样的东西:
INSERT INTO location(description)
SELECT DISTINCT CONCAT(s.name, '-Location')
FORM shops s;
您还可以在许多数据库中使用|
进行字符串连接:
INSERT INTO location(description)
SELECT DISTINCT s.name || '-Location'
FORM shops s;
请用您正在使用的数据库标记您的问题。我使用了您建议的内容,但是我得到了一个SQL错误,告诉您concat函数不可识别。因此,我将连接更改为如下操作:插入到位置(描述)中,从s中选择s.name | |'-location;它工作正常,非常感谢你的帮助help@BlaiseFeukouo . . .
concat()
是用于连接字符串的ANSI标准函数,但是大多数数据库都有自己的方法。当我回答这个问题时,我认为这个问题没有被数据库标记<代码>| |适用于许多数据库。好的。感谢@Gordon Linoff的回答。我目前正在使用Postgresql作为数据库。但是,我的应用程序应该可以与任何数据库一起工作,因为我使用的是JPA(eclipseLink)。因此,我在Liqbase变更集中编写的sql查询应该不依赖于所使用的数据库。请问,你认为我所采取的解决方案适合这种情况吗?