join - Kdb Q:仅在空行上进行左连接
问题描述
我想在两个表之间t1
和t2
列上执行左连接,id2
仅当侧面id2
为空时t1
。
作为一个 qbie,我想知道它是否存在比我下面的更好的解决方案?
t1: ([] id1:`AAA`BBB`CCC`DDD`EEE; id2:```02C``E25)
t2: ([] id1:`AAA`BBB`CCC`DDD`SSS; id2:`02A`02B`C2C`DD0`SPE)
预期结果:
([] id1:`AAA`BBB`CCC`DDD`EEE; id2:`02A`02B`02C`DD0`E25)
id1 id2
-------
AAA 02A
BBB 02B
CCC 02C
DDD DD0
EEE E25
到目前为止,我的解决方案是通过将列更改id2
为id3
from来执行左连接t2
,然后应用向量条件函数?
:
t1:t1 lj 1!select id1, id3:id2 from t2
t1[`id2]: ?[null t1[`id2];t1[`id3];t1[`id2]]
t1:delete id3 from t1
谢谢!
解决方案
另一种使用填充的方法^
:
q){key[x]#y^x}[1!t1;1!t2]
id1| id2
---| ---
AAA| 02A
BBB| 02B
CCC| 02C
DDD| DD0
EEE| E25
推荐阅读
- angular - Angular5,在路由上,网址发生了变化,但它没有加载相同的页面
- python - 张量流中内置 MS-SSIm 函数的计算错误
- python - Python:透视数据集
- python - 为具有类不平衡的混合数据构建分类器的最佳策略
- python - 如何使用“命名聚合”
- unix - 如何使用 sed 在每行末尾添加右括号?
- angular - 让页面导航到自身,将新实例添加到导航堆栈
- web-crawler - 如何让 Google、Facebook 机器人爬虫可以索引 AWS CloudFront 上的媒体文件?
- c# - 如何在使用cefshrap(C#)恢复执行之前等待网页加载结束
- mongodb - SpringData注解(或标准方式)在java中使用String for MongoDB ObjectId进行手动参考