我有一个数据库查询。它现在已经可以工作了,但是我试图将
unionAll
方法添加到这个查询中,但我没有这样做。我想用 unionAll
方法合并两个表。
$uid = Auth::id();
$homeCovering = DB::table('bid_requests')
->leftJoin('bid_home_coverings', 'bid_requests.id', '=', 'bid_home_coverings.bidId')
->where('bid_requests.userId', '=', $uid)
->where('district', '!=', null)
->get();
$vehicleCovering = DB::table('bid_requests')
->leftJoin('bid_vehicle_coverings', 'bid_requests.id', '=', 'bid_vehicle_coverings.bidId')
->where('bid_requests.userId', $uid)
->where('district', '!=', null)
->get();
unionAll()
方法,还要确保你确实需要union all,union和union all是有区别的
$homeCovering = DB::table('bid_requests')
->select('bid_requests.*')
->leftJoin('bid_home_coverings', 'bid_requests.id', '=', 'bid_home_coverings.bidId')
->where('bid_requests.userId', '=', $uid)
->where('district', '!=', null);
$bid_requests = DB::table('bid_requests')
->select('bid_requests.*')
->leftJoin('bid_vehicle_coverings', 'bid_requests.id', '=', 'bid_vehicle_coverings.bidId')
->where('bid_requests.userId', $uid)
->unionAll($homeCovering)
->where('district', '!=', null)
->get();
或者您可以将这些查询合并为单个查询
$bid_requests = DB::table('bid_requests')
->select('bid_requests.*')
->leftJoin('bid_vehicle_coverings', 'bid_requests.id', '=', 'bid_vehicle_coverings.bidId')
->leftJoin('bid_home_coverings', 'bid_requests.id', '=', 'bid_home_coverings.bidId')
->where('bid_requests.userId', $uid)
->where('district', '!=', null)
->get();
如果您需要不同的出价请求,请添加
->distinct()