首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用更新替换select表

用更新替换select表
EN

Stack Overflow用户
提问于 2017-08-02 09:52:25
回答 1查看 52关注 0票数 0

我有一张中间桌:

text_mining_molecule

代码语言:javascript
复制
|text_mining_id| molecule_id |
| -------------| ----------  |
|  ID          |  ID         |

和另外两张表格:

表Molécules:

代码语言:javascript
复制
id  | main_name | others …
--- | --------- | ------
1   | caféine   | others …

Table jsonTextMining:

代码语言:javascript
复制
id | title  | molecule_name                       | others …
---|------- |-------------------------------------|------
1  | title1 | colchicine, cellulose, acid, caféine| others …

在从其他两个表中选择ID的列表中选择text_mining_molecule时,需要插入json_text_miningmolecule

实际上,当选择分数低于4时,有一个下拉列表,它已经插入了从json_text_miningtext_mining的所有行。

代码语言:javascript
复制
INSERT INTO text_mining (id, solrid, originalpaper, annotatedfile, title, keyword, importantsentence, version, klimischscore, moleculename, synonymname, validation)
            SELECT id, solrid, originalpaper, annotatedfile, title, keyword, importantsentence, version, klimischscore, molecule_name, synonym_name, validation
            FROM json_text_mining WHERE klimischscore < 4

这是可行的,但是我需要用相关的ID填充text_mining_molecule,所以我也有这部分代码:

代码语言:javascript
复制
SELECT s.id, m.id
          FROM (SELECT id, regexp_split_to_table(molecule_name,', ') AS m_name
          FROM json_text_mining) AS s, molecule m
          WHERE m.main_name = s.m_name;

如何使用text_mining_molecule而不是select直接更新select表?

EN

回答 1

Stack Overflow用户

发布于 2017-08-02 09:58:23

使用CTE。例如,如果text_mining_molecule.molecule引用molecule.id,那就像:

代码语言:javascript
复制
with c as (
SELECT s.id sid, m.id mid
          FROM (SELECT id, regexp_split_to_table(molecule_name,', ') AS m_name
          FROM json_text_mining) AS s, molecule m
          WHERE m.main_name = s.m_name
)
update text_mining_molecule t
set sid = c.sid
from c
where t.molecule = c.mid
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45457431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档