我已经在Laravel中基于IF条件通过连接2个表进行了查询。我需要添加where查询以基于连接表中的material_id列过滤数据。
$transactions = DB::table('transactions')
->select('transactions.id', DB::raw("IF(transactions.is_sell = '1', advertisements.material_id, offerrequests.material_id) as material_id"))
->leftJoin('advertisements', function ($join) {
$join->on('advertisements.id', '=', 'transactions.post_id');
})
->leftJoin('offerrequests', function ($join) {
$join->on('offerrequests.id', '=', 'transactions.post_id');
});
我已经尝试了以下方法,它正在从连接表中查询带有请求物料标识的数据。但最后我还可以看到与输入中的“物料标识”不相似的事务处理值。我只需要获取与相同物料标识完全匹配的数据。
$transactions = $transactions->where(function ($query) use ($request) {
$query->where('advertisements.material_id', $request->material)
->orWhere('offerrequests.material_id', $request->material);
})->get();
1条答案
按热度按时间unhi4e5o1#
在下面尝试...而不是或在哪里尝试和在哪里
或