两个表的交叉连接

问题描述

我有两个表 xy。我想加入列 b 以便在输出中得到 z

x:([a:1 2 1 3]; b:`a`a`b`b)
q) a | b
   -----
   1 | a
   2 | a
   1 | b
   3 | b

y:([b:`a`a`a`b]; c:7 8 9 10)
q) b |  c
   ------
   a |  7
   a |  8
   a |  9
   b | 10

所需的输出

q) a |  b |  c
   -----------
   1 |  a |  7
   1 |  a |  8
   1 |  a |  9
   2 |  a |  7
   2 |  a |  8
   2 |  a |  9
   1 |  b | 10
   3 |  b | 10

这是某种交叉连接吗?

解决方法

equi join (ej) 将产生您想要的结果:

q)ej[`b;x;y]