KDB select 其中

KDB select where

我有一个table

t:flip `dt`id`data ! (`d1`d1`d2`d2`d3`d3; 0 1 0 1 0 1; 100 200 100 300 0 200)

从其他查询中,我有一个 table

s:flip `dt`id ! (`d1`d2`d2`d3; 0 0 1 1)

我如何从 t select 中 returns 所有 dt 和 id 的组合都在 s 中的条目,所以 return

flip `dt`id`data ! (`d1`d2`d2`d3; 0 0 1  1; 100 100 300 200)

您可以在 table 到 table 操作上使用 in,因此只需从 t 中所需的列创建一个 table 并使用 in 搜索相应的 s记录。只要左参数和右参数的 table 列和类型相同,那么 in 就会按预期生成布尔列表。

q)select from t where ([]dt;id) in s
dt id data
----------
d1 0  100
d2 0  100
d2 1  300
d3 1  200