当前位置: 首页 > 知识库问答 >
问题:

如何使用Laravel模型从id不在另一个表中的表中选择记录?

凌华奥
2023-03-14

列表项目

Task::join('events','events.task_id' ,'=','tasks.id')
        ->where('events.event_type','=','Task')
        ->where('events.task_stage','!=','assigned')->select('tasks.*');

例如:

+-------------------------+   +-------------------------+
| tasks                   |   | Events                  |
+----------+--------------+   +-------------------------+
| id       |  name        |   | task_id  |  task_stage  |
| 1        |  Task1       |   | 1        |  'assigned'   |
| 2        |  Task2       |   | 2        |  'created'   |
+----------+--------------+    +----------+--------------+

共有1个答案

干照
2023-03-14

闭包作为第二个参数传递到join方法中。闭包将接收一个JoInclause对象,该对象允许您指定Join子句的约束:

Task::join('events', function ($join) {
    $join->on('events.task_id', '=', 'tasks.id')
        ->where('events.event_type', '=', 'Task')
        ->where('events.task_stage', '!=', 'assigned');
})->select('tasks.*')->get();

文件编制

 类似资料:
  • 我想从Laravel 5.1中其他表中不存在的表中获取所有记录。 我知道如何在核心PHP中做到这一点,它与下面的代码工作正常 模型 但是当我尝试在Laravel中使用以下代码时, 然后它给了我这个错误 调用未定义的方法Illumb\Database\Query\Builder::table()

  • 问题内容: table1 (id, name) table2 (id, name) 询问: 问题答案: SELECT t1.name FROM table1 t1 LEFT JOIN table2 t2 ON t2.name = t1.name WHERE t2.name IS NULL 问 :这是怎么回事? 答 :从概念上讲,我们从中选择所有行,并为每一行尝试在其中找到具有相同值的行。如果没有这

  • 我的数据库中有两个表。一个表包含有关用户的信息,而另一个表包含有关预订的数据。当用户进行预订时,userid将被放置在预订表中。现在,我想展示一张用户的照片,其中包括预订的备注和日期,但是照片在users表中。 这是我的两张桌子: null null

  • 问题内容: 如何选择一个表中所有未出现在另一表中的行? 表格1: 表2: 表1中不在表2中的行的示例输出: 也许这样的事情应该工作: 问题答案: 如果您在另一条注释中提到有300列,并且想要对所有列进行比较(假设这些列的名称相同),则可以使用a 隐式联接两个表之间所有匹配的列名称,以便不必繁琐地手动输入所有加入条件:

  • 问题内容: 我正在尝试查找一个表中的行,而不是另一个表中的行,这两个表都在不同的数据库中,并且在我要用来匹配的列上也有不同的列名。 我有一个查询,下面的代码,我认为它可能有效,但是速度太慢: 因此查询尝试执行以下操作: 从R2R.partmaster数据库中选择wpsapi4.product_details数据库中没有的所有ID。我匹配的列是partmaster.id和product_detail

  • 问题内容: 我在SQLite中有两个表: 我的问题是,我该如何编写一个SQL查询来返回不在中的名称? 例如: 在这个例子中,SQL查询应返回的元素,并从,因为他们不是。 问题答案: 这是在“显而易见的”标准SQL中执行的操作: 还有其它方法,如使用,中子句和操作。