2013-10-09 45 views
-1

我是SQL新手,并且正在使用postgreSQL数据库。我目前有两个表,一个叫pattern,另一个叫pattern_analysis。以下是每个表格的内容。SQL从一个表写入ID到另一个表

图案

  • pattern_id
  • 图案

pattern_analysis

  • POST_ID
  • post_index
  • 模式
  • pattern_id

什么我目前做的是在一堆不同岗位的字符串搜索,并且如果它匹配给定的模式,然后编写数据库。我有它将post_id,post_index和模式写入pattern_analysis表,但是如何将pattern_id从模式表获取到pattern_analysis表中?

编辑:我有使用Python 2.6和psycopg2数据库接口。我不确定这是否会改变什么,但我认为它不会。

+1

您能显示一些您的代码吗? – Alvaro

回答

1

一个快速的更新语句应该做的伎俩:

UPDATE PA SET pa.pattern_id = p.pattern_id FROM pattern_analysis PA联接模式P号PA.pattern = P.pattern

充分披露,不经过测试,这是我在MS-SQL中使用的语法,所以在postgre中可能会有所不同。

1

我假设你的SQL插入代码看起来是这样的:

INSERT INTO pattern_analysis (post_id,post_index,pattern) VALUES (x,xx,xxx) 

的“x”,“XX”,“XXX”你对数据库中写入的值。您可以使用子查询从模式表中获取pattern_id,如下所示INSERT:

INSERT INTO pattern_analysis (post_id,post_index,pattern,pattern_id) 
VALUES (x,xx,xxx,(SELECT pattern_id FROM patterns p WHERE p.pattern = xxx)) 
相关问题