使用来自两个不同 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
]);
非常感谢!
我正在构建一种人力资源应用程序,我必须用另一个 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
]);
非常感谢!