top-think/think

[6.0.12 LTS]Db where生成的语句有误,指定in还是变成=

wuyifan66 opened this issue · 2 comments

Db::table('think_user')
->where('id', 'IN', function ($query) {
$query->table('think_profile')->where('status', 1)->field('id');
})
->select();

这个查询的不是in,是=,怎么解决

同样
Db::table('think_user')
->where('id', 'IN', '(select user_id from think_vips)')
->select();

生成的语句为 select * from think_user where id = (select user_id from think_vips)
预期的则是 select * from think_user where id in (select user_id from think_vips)

这个写法建议用whereExp方法查询 in查询默认会自动识别 如果不是数组 就不用会用in