Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 根据两个不同表之间的相似性更新表记录_Sql_Postgresql - Fatal编程技术网

Sql 根据两个不同表之间的相似性更新表记录

Sql 根据两个不同表之间的相似性更新表记录,sql,postgresql,Sql,Postgresql,我有三张桌子: 调查、调查邀请和旧调查邀请 我将旧的调查邀请迁移到调查邀请,但在调查邀请中创建了一个名为“调查id”的列,该列应与“surveys.id”关联 对于survey_invests.survey_id中的所有记录,我当前的插入值为1 如何更新survey_invests.survey_id,以便根据surveys.survey_string_key和old_survey_invests.survey_string_key以及surveys.location_id和old_survey

我有三张桌子: 调查、调查邀请和旧调查邀请

我将旧的调查邀请迁移到调查邀请,但在调查邀请中创建了一个名为“调查id”的列,该列应与“surveys.id”关联

对于survey_invests.survey_id中的所有记录,我当前的插入值为1

如何更新survey_invests.survey_id,以便根据surveys.survey_string_key和old_survey_invests.survey_string_key以及surveys.location_id和old_survey_invests.location_id之间的相似性获得正确的surveys.id值?在某种程度上,我能够拿出一份精选声明来证明我在寻找什么:

SELECT surveys.id, surveys.location_id, surveys.survey_string_key
FROM surveys
JOIN old_survey_invites 
     ON surveys.survey_string_key = old_survey_invites.survey_string_key 
     AND surveys.location_id = old_survey_invites.location_id 
ORDER BY old_survey_invites.id
总之,我想获取surveys.id以放入survey\u invests.survey\u id基于surveys.survey\u string\u key=old\u survey\u invests.survey\u string\u key和surveys.location\u id=old\u survey\u invests.location\u id

编辑,要从旧的调查邀请迁移到新的调查邀请,请执行以下操作:

INSERT INTO survey_invites(user_id, user_invitation_id, survey_id,
invitation_date, last_modified_date, survey_link)
SELECT (user_id, user_invitation_id, 1, invitation_date,    
last_modified_date, survey_link FROM old_survey_invites);

我将1作为测量id的占位符

您正在查找旧调查邀请和新调查邀请表之间的链接是什么?我不是在查找旧调查邀请和新调查邀请表之间的链接。我已将一些列从旧的“调查邀请”表迁移到新的“调查邀请”表中。我计划删除旧的调查邀请。也就是说,这两者之间没有外键,但我的新调查邀请中有一列名为survey\u id,它应该是surveys.id的外键。为了得到正确的调查邀请。调查id我意识到我必须检查调查。id基于调查。调查字符串=旧调查邀请。调查字符串和调查。位置id=旧调查邀请。位置id=旧调查邀请。位置id。Gary问的不是外键,而是链接。换句话说:我们如何匹配来自旧的调查邀请和调查邀请的记录。正如您所写,已经有了匹配调查和旧的调查邀请的已知方法,但这还不足以为您组成更新查询。用于迁移到新邀请表的insert语句是否足够?我会用这个更新我的帖子。