KDB:如何将行从一个表插入/向上插入到另一个表

时间:2018-10-23 14:44:44

标签: kdb

k1:([a:("ff"; "yy"; "zz");z:("tt"; "yy"; "hh")] b:("33"; "44"; "55"); c:("66"; "77"; "88"))


k2:([z:()] a:(); b:(); c:(); m:(); i:())

k1k2是键表。 k2具有k1的所有列以及更多列。

如何执行从k1k2的条件上插。基本上,以下哪一项是相应的工作声明:

`k2 upsert select k1 where a="ff"

2 个答案:

答案 0 :(得分:7)

我认为这可以解决您的问题:

k2 uj `z xkey select from k1 where a like "ff"

xkey将保持键在k2上,而uj将保持所有列,包括k1中没有值的列。

在此示例中,它将返回:

z   | a    b    c    m i
----| ------------------
"tt"| "ff" "33" "66"

答案 1 :(得分:2)

您尝试的语句实际上非常接近。您可以使用:

`k2 upsert 0!select from k1 where a like "ff"