为了账号安全,请及时绑定邮箱和手机立即绑定

laravel中如何获取另一个表中的数据where子句

laravel中如何获取另一个表中的数据where子句

PHP
子衿沉夜 2023-08-26 19:10:01
我有 2 个有关系的表。我想添加 where 子句,但该 where 子句位于另一个表中。我的桌子是这样的:pencairan+----+------------+------------+------------+| id |  induk_id  |     qty    |    harga+----+------------+------------+------------+|  1 |     1      |     10     |    1000+----+------------+------------+------------+|  2 |     1      |     20     |    3000+----+------------+------------+------------+|  3 |     3      |     10     |    1500+----+------------+------------+------------+induk_pencairan+----+------------+------------+------------+| id |  rek_id    |     name   |    address+----+------------+------------+------------+|  1 |     1      |    somedata|    somedata+----+------------+------------+------------+|  2 |     1      |    somedata|    somedata+----+------------+------------+------------+|  3 |     3      |    somedata|    somedata+----+------------+------------+------------+|  4 |     3      |    somedata|    somedata+----+------------+------------+------------+所以我想这样做:$pencairan = IndukPencairan::with('turunan_belanja')->findOrFail($id);if (!$pencairan)abort(404);$id = $pencairan->id;$rek = $pencairan->rek_id;$digunakan = Pencairan::with('induk_pencairan')->where('induk_pencairan.rek_id' ,$rek)->whereNotIn('induk_id ', [$id])->sum(DB::raw('harga*qty'));但我收到错误SQLSTATE[42S22]: Column not found: 1054 Unknown column 'induk_pencairan.rek_id' in 'where clause'(SQL: select sum(harga*qty) as aggregate from `pencairan` where `induk_pencairan`.`rek_id` = 2 and `induk_id` not in (2))有人可以帮忙吗?#更新我在两张桌子上的模型关于除霜型号 public function induk_pencairan(){    return $this->belongsTo(\App\Models\IndukPencairan::class ,'induk_id');    }
查看完整描述

2 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

你只需要加入他们......


  $digunakan = Pencairan::with('induk_pencairan')->join('pencairan','pencairan.induk_id','=','induk_pencairan.id')

            ->where('induk_pencairan.rek_id' ,$rek)

            ->whereNotIn('induk_id ', [$id])->sum(DB::raw('harga*qty'));

或者你可以使用whereHas

 $digunakan = Pencairan::with('induk_pencairan')->whereHas('induk_pencairan',function ($query)use($rek)

        {

            $query->where('induk_pencairan.rek_id' ,$rek);

        })

            ->whereNotIn('induk_id ', [$id])->sum(DB::raw('harga*qty'));


查看完整回答
反对 回复 2023-08-26
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

我用这个解决了


 $digunakan = Pencairan::with('induk_pencairan')

    ->whereHas('induk_pencairan', function($query) use ($rek) {

      $query->where('rek_id', $rek);

    })->whereNotIn('induk_id', [$id])->sum(DB::raw('harga*qty'));


查看完整回答
反对 回复 2023-08-26
  • 2 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信