如何连接多个表

时间:2014-06-13 04:33:03

标签: kdb q-lang

我试图在q

中加入多个表格
        a                  b                  c
    key | valuea       key | valueb       key | valuec
     1  |   xa          1  |   xb          2  |   xc
     2  |   ya          2  |   yb          4  |   wc
     3  |   za  

预期结果是

    key | valuea | valueb | valuec
     1  |   xa   |    xb  |   
     2  |   ya   |    yb  |   xc
     3  |   za   |        |   
     4  |        |        |   wc

可以简单地用

来实现
    (a uj b) uj c

但有没有人知道我怎么能以功能形式做到这一点? 我不知道我实际拥有多少张桌子

我基本上需要一个能够遍历列表并将任意数量的键控表一起粉碎的函数......

f:{[x] x uj priorx};
f[] each (a;b;c;d;e...)

有人可以帮忙吗?或建议什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

想通了......;)

f:{[r;t]r uj t};
f/[();(a;b;c)]

答案 1 :(得分:1)

特别针对您的问题的另一种解决方案,也比您的解决方案快一点:

a(,')/(b; c)