需求
有两张表,需要做连接查询出结果,并且该查询是有条件的查询,还需要分页。
表结构
表结构大概是下图这个样子。外键是openid
实现
1、 如果是mysql的话,sql语句如下
select article.*,userList.nickName,userList.avatarUrl from article as article LEFT JOIN `user` as userList ON article.openid = userList.openid WHERE (article.category = 1 AND article.`share` = 2) OR (article.category = 1 AND article.`share` = 1 AND article.openid = '') LIMIT 0,20
2 、如果是微信小程序的话
db.collection('article').aggregate().match(
db.command.or([{
category: 1,
share: 2
}, {
category: 1,
share: 1,
openid: '你的openid'
}])
).skip(0).limit(20).lookup({
from: 'user',
localField: 'openid',
foreignField: 'openid',
as: 'userList'
}).replaceRoot({
newRoot: 美元符号.mergeObjects([ 美元符号.arrayElemAt(['美元符号userList', 0]), '美元符号美元符号ROOT' ])
}).project({
userList: 0
}).end()
结果
小程序查询结果如下图
说明:代码区域内编辑器不能使用
$
,使用了美元符号代替