使用来自两个不同 mysql 表的值进行计算

calculating with values from two different mysql tables

我正在构建一种人力资源应用程序,我必须用另一个 mysql table 的变量来减少 mysql table 的变量。
我正在使用的 CMV 是 Laravel 所以我正在尝试尽可能多地使用数据库 class。
这是第一个table,用户: users_table
第二个 table,aanvraags: aanvraags_table
我想用第二个 table 中的变量 duur 减少第一个 table 中的变量 vakantie。这将在休假请求被接受后立即发生。我的控制器中已经有一个函数可以将变量 goedgekeurd 从 0 更改为 1。该函数如下所示:
public function updateNieuw($id){ //update aanvraag $update_aanvraag = DB::table('aanvraags') ->where('id', $id) ->update([ 'goedgekeurd' => 1 //approved by the boss ]);
在同一个函数中,我想用变量 duur 减少变量 vakantie。
目前我已经尝试了一些方法,例如:

    $update_vakantiedag = DB::table('aanvraags')
    ->select('duur')
    ->where('id', $id)
    ->get();

    $vakantie = DB::table('users')
    ->join('aanvraags', 'users.id', '=', 'aanvraags.user_id')
    ->where('aanvraags.id', '=', $id)
    ->update([
        'users.vakantie' => $update_vakantiedag
    ]);

所有这些都没有让我到任何地方。大多数时候,我从第一个 table.
中得到错误或变量 vakantie 的值 减少发生对于应用来说是非常重要的。变量 vakantie 显示每个用户在接受新请求后的剩余休假天数,并显示在应用程序中。
欢迎任何提示或解决方案!
提前谢谢大家!

使用这个:

$update_vakantiedag = DB::table('aanvraags')
    ->select('duur')
    ->where('id', $id)
    ->first();

$vakantie = DB::table('users')
    ->join('aanvraags', 'users.id', '=', 'aanvraags.user_id')
    ->where('aanvraags.id', '=', $id)
    ->decrement('users.vakantie', $update_vakantiedag->duur);

@JonasStaudenmeir 非常感谢!我改变了功能,它起作用了!

$update_vakantiedag = DB::table('aanvraags') ->select('duur') ->where('id', $id) ->first();

    $verlof = DB::table('users')
    ->join('aanvraags', 'users.id', '=', 'aanvraags.user_id')
    ->where('aanvraags.id', '=', $id)
    ->first();`  

    $vakantie = DB::table('users')
    ->join('aanvraags', 'users.id', '=', 'aanvraags.user_id')
    ->where('aanvraags.id', '=', $id)
    ->update([
        'users.vakantie' => $verlof->vakantie - $update_vakantiedag->duur
    ]);

非常感谢!