mysql - 在 3 个表中使用 join 查询 knex
问题描述
我无法使用 knex 运行下面的查询。我设法与两个表进行连接,但是这个连接与 3 个表,其中车辆元素 id 为 = x,我没有得到它。
下面是 sql 查询和我尝试使用 knex 的方式,但没有成功。
非常感谢您!
SELECT v.id AS id_veiculo,
v.placa,
v.marca,
v.exibicao,
v.modelo,
v.renavam,
v.chassi,
v.ano_fabri,
v.ano_modelo,
v.id_combustivel,
v.capacidade_litros,
v.cor,
v.uf_placa,
v.status,
t.id AS id_servico,
t.servico,
c.nome AS combustivel
FROM veiculo v
INNER JOIN tipo_servico_veiculo tsv
ON tsv.veiculo_id = v.id
AND v.id = :id
INNER JOIN tipo_servico t
ON t.id = tsv.servico_id
INNER JOIN combustivel c
ON c.id = v.id_combustivel
knex,版本:“^0.21.2”
const result = await knex('veiculo as v')
.join('tipo_servico_veiculo as tsv', function () {
this.on('tsv.veiculo_id', '=', 'v.id').andOn('v.id', '=', id);
})
.join('tipo_servico t', 't.id', '=', 'tsv.servico_id')
.join('combustivel as c', 'v.id_combustivel', '=', 'c.id')
.select(
'v.id',
'v.placa',
'v.marca',
'v.exibicao',
'v.modelo',
'v.cor',
'v.status',
'c.nome as combustivel',
't.servico'
);
解决方案
推荐阅读
- compiler-errors - 带有生命周期符号的奇怪编译错误:“预期的`:`,发现`>`”
- linux - 无法在 docker 容器上运行 dmidecode
- kubernetes - 从外部 GCP 访问内部 loadBalancer (dask-scheduler)
- python - 如何从python中的任何行开始使用read next()?
- apache-spark - 在 Kubernetes 上启动 Spark 应用程序时发生了什么
- html - 有没有办法使用 CSS 将 bootsrap 导航栏项目向右对齐?
- python - 如何使用 python 比较机器人框架的数据输出
- node.js - npm 命令中的模块构建失败
- fasttext - 使用fasttext时如何禁用子词嵌入训练?
- distributed-database - SequoiaDB 中 omCommand.cpp:3765 处的编译错误