Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果没有找到与另一个表的联接,则Laravel查询生成器不会返回整行_Mysql_Laravel - Fatal编程技术网

Mysql 如果没有找到与另一个表的联接,则Laravel查询生成器不会返回整行

Mysql 如果没有找到与另一个表的联接,则Laravel查询生成器不会返回整行,mysql,laravel,Mysql,Laravel,在这里,我当前的工作查询是 $results = DB::table('amenities as a') ->leftJoin('amenity_values as av','av.amenity_id','=','a.id') ->leftJoin('units_amenities_values as uav','uav.amenity_value_id','=','av.id') ->leftJoin('units as u','uav.unit_id','=','u.id

在这里,我当前的工作查询是

$results = DB::table('amenities as a')
->leftJoin('amenity_values as av','av.amenity_id','=','a.id')
->leftJoin('units_amenities_values as uav','uav.amenity_value_id','=','av.id')
->leftJoin('units as u','uav.unit_id','=','u.id')
->leftJoin('amenity_pricing_reviews as apr','apr.unit_id','=','u.id')
->select('a.id as amenity_id','a.amenity_name','a.category_id', 'av.amenity_value','u.id as unit_id','u.unit_number','apr.dom','apr.building_id')
->where('a.property_id', $data['property_id'])
->whereIn('apr.building_id', $data['building_ids'])
->whereNull('apr.deleted_at')
->whereNull('u.deleted_at')
->whereNull('av.deleted_at')
->whereNull('a.deleted_at')
->orderBy('a.amenity_name','asc')
->get()
->groupBy(['category_id','unit_id']);
在这里,我加入了一个表
便利设施\u定价\u评论
。在这种关系中,每当它在
便利设施\u定价\u审查
表中找不到相关行时,它就会丢弃整行:

但是,我希望从该表中为这些列获取空值的行。比如:

amenity_id  => value
amenity_name => value
category_id => value
amenity_value => value
unit_id => value
unit_number => value
dom => 
building_id => 

另外,我根据这个查询的结果做了很多其他的事情,所以我想对最终结果的结构做最小的更改。

尝试
join
而不是
leftJoin
。这将有助于

如果设施定价审查不存在,您的条件将无法成功,因此它将有效地将您的左侧连接更改为内部连接。也许你们希望这只是连接的一个条件

->leftJoin('amenity_pricing_reviews as apr', function($join) { $join->on('apr.unit_id','=','u.id')->whereIn('apr.building_id', $data['building_ids']) })