кажется, я получил разъяснение.Однако я хотел бы поделиться своими исследованиями и разработками здесь.Если кто-то еще столкнулся с такой же проблемой.
Я напечатал raw query
и получаю where()
, кажется, рассматривают третий параметр как string
сравнение вместо field
сравнение.Вот почему кажется, что результат отличается.
Однако, когда мы запускаем запрос с whereRaw()
, это рассматривается как сравнение полей таблицы.
Код Laravel:
$ids = $this->model->leftJoin('feed', 'agents.identifier', '=', 'feed.identifier')
->whereRaw('feed.active <> agents.feed_status')
->pluck('id');
MySql Query:
"select * from `agents` left join `feed` on `agents`.`identifier` = `feed`.`identifier` where feed.active <> agents.feed_status"
# где feed.active <> agents.feed_status
LaravelКод:
$ids = $this->model->leftJoin('feed', 'agents.identifier', '=', 'feed.identifier')
->where('feed.active', '<>', 'agents.feed_status')
->pluck('id');
MySql Query:
"select * from `agents` left join `feed` on `agents`.`identifier` = `feed`.`identifier` where `feed`.`active` <> 'agents.feed_status'"
# где feed
. active
<> 'agents.feed_status«