bookshelf / knex InnerJoin在多个表之间

时间:2017-07-16 19:11:21

标签: javascript sql node.js knex.js bookshelf.js

我试图在三张桌子之间进行连接。

让我们调用这些表,表a,b和c。

表a有一个主键,它是b中外键的目标。 类似地,表a的主键是来自c的外键的目标。

我想要做的结束查询就像是

SELECT * FROM a WHERE b.foreign_key = a.primary_key OR c.foreign_key = a.primary_key

我的queryBuilder现在看起来像这样(从表a开始):

qb.innerJoin('b', 'b.foreign_key', 'a.primary_key') qb.innerJoin('c', 'c.foreign_key', 'a.primary_key')

我认为这是错误的,因为当我们为表c进行连接时,它会在a和b之间的先前连接中起作用。

有没有办法可以进行这种三向连接,其中连接是相互添加/相互连接的?

1 个答案:

答案 0 :(得分:0)

解决了它。

我只需要使用左连接。使用左连接将保留我的原始表(表a),并防止它像我加入a时发生的那样被剔除。