我有一张桌子A和B.表A得到了:
Id | artist | artist_id(that is empty now)
--------------------------------------------
1 | John |
2 | Jack |
表B有:
artist_id | artist
-------------------
34 | John
56 | Jack
57 | Mike
我想在表A中设置artist_id,其中艺术家与B中的相同。 结果将是:
Id | artist | artist_id
--------------------------------------------
1 | John | 34
2 | Jack | 56
如何在postgresql中执行此操作?
答案 0 :(得分:2)
这应该回答,使用UPDATE
yourtable A和FROM
表来加入(B)
UPDATE TABLEA AS A
SET A.artist_id = B.artist_id
FROM TABLEB as B
WHERE A.artist = B.artist
答案 1 :(得分:1)
从名称切换到ID是个好主意。假设您没有重复项,可以使用from
子句或相关子查询轻松完成:
update a
set artist_id = b.artist_id
from b
where a.name = b.name;
答案 2 :(得分:0)
以下查询可以正常运行,假设artist_id
tableB
中每个UPDATE tableA
SET artist_id = tableB.artist_id
FROM tableB
WHERE tableA.artist = tableB.artist AND tableA.artist_id IS NULL
有1行(唯一值)。
listeners: {
blur: function(combo) {
if (combo.queryFilter) {
combo.queryFilter.setValue('');
combo.getStore().filter();
}
}
}