【发布时间】:2019-10-22 16:17:06
【问题描述】:
我正在开发一个 laravel 应用程序,我有两个非常相似的QueryBuilder,但在两种情况下都会产生不同的结果。
查询 1:
$ids = $this->model->leftJoin('feed', 'agents.identifier', '=', 'feed.identifier')
->whereRaw('feed.active <> agents.feed_status')
->pluck('id');
dd(count($ids)); // print 485236
查询 2:
$ids = $this->model->leftJoin('feed', 'agents.identifier', '=', 'feed.identifier')
->where('feed.active', '<>', 'agents.feed_status')
->pluck('id');
dd(count($ids)); // print 4259
我想知道这两个 QueryBuilder 之间的主要区别。为什么它会产生不同的结果,虽然看起来是一样的?
哪个查询返回正确的结果?如果我想从feed_status 不等于 feed.active 的代理那里找到记录。
【问题讨论】:
-
我猜想要么底层数据不一样,要么你的 PHP 中用于
agents表的模型在每种情况下都不是同一个对象。
标签: mysql laravel laravel-query-builder