node服务器knex查询mysql,select子查询

参考地址:http://knexjs.org/

原始mysql语句:

SELECT
	a.*, (
		SELECT
			b. NAME
		FROM
			kind b
		WHERE
			b.id = a.kind
	) AS kind_name,
	(
		SELECT
			c.url
		FROM
			music c
		WHERE
			c.id = a.music
	) AS music_url
FROM
	card a
WHERE
	a. SHOW = 1

转化为knex语句:

module.exports = async ctx => {
  ctx.body = await knex('card')
    .join('kind', 'card.kind', '=', 'kind.id')
    .join('music', 'card.music', '=', 'music.id')
    .select('card.*', 'kind.name as kind_name', 'music.url as music_url')
    .where('show', 1)
}

编译后的sql语句:

SELECT
	`card`.*,
	`kind`.`name` AS `kind_name`,
	`music`.`url` AS `music_url`
FROM
	`card`
INNER JOIN `kind` ON `card`.`kind` = `kind`.`id`
INNER JOIN `music` ON `card`.`music` = `music`.`id`
WHERE
	`show` = 1

 

转载于:https://my.oschina.net/kaikai1/blog/1601538

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值