首页 > 解决方案 > 如何使用 knex 进行嵌套查询以获得预期结果?

问题描述

有 3 个表,分别称为warehousesagents_Warehousesagentsagents_warehousestable 与warehousestable 和agentstable 相连。

agent_warehouses 表

所以我需要得到不在 agents_warehouses表中的仓库。

这是我需要从 knex.js 执行的 sql 查询;

SELECT id, name FROM `warehouses` 
WHERE id not in 
(SELECT warehouse_id as id from agents_warehouses WHERE agent_id=2)

如何使用 knex.js 获得预期结果?

标签: sqlnode.jsjoinknex.jsnested-query

解决方案


您可以使用以下内容构建所需的查询:

knex('warehouses')
  .columns(['id', 'name'])
  .whereNotIn('id', knex('agents_warehouses').column('warehouse_id').where('agent_id', 2));

推荐阅读