【问题标题】:How can this be witten in Laravel Eloquent term?这怎么能用 Laravel Eloquent 术语来写?
【发布时间】:2019-07-05 13:10:37
【问题描述】:

我正在将一段数据库 SQL 查询转换为 Laravel Eloquent 查询,但它不起作用。

我的代码 sn-p 如下所示:

SELECT user_id FROM posts WHERE user_id NOT IN (SELECT id FROM users)

有人能解释为什么吗?

【问题讨论】:

  • 到目前为止你尝试了什么..?

标签: sql database laravel eloquent


【解决方案1】:

所以假设你有一个Post 模型,你可以尝试这样的事情:

Post::select('user_id')->whereNotIn('user_id', User::pluck('id'))->get();

【讨论】:

  • 感谢您的快速回复。使用原始查询,我得到了 78 条记录,这是正确的数字,但是使用您指定的查询和我之前尝试过的查询,它只返回 73 条记录。我的理论是帖子表中有5个ID!我该如何解决?
  • 你可以试试调试,我没有你的数据,所以不知道返回什么。您可以通过像 dd(User::pluck('id')); 这样从用户表中转储 id 来检查返回了哪些 id。
  • 由于首先将所有 id 加载到内存中,这可能会非常慢。我建议使用左外连接或回调
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 2019-08-06
相关资源
最近更新 更多