Php 如何选择所有数据+;在laravel中加入数据
我有一个join查询,根据酒店房间的折扣对酒店进行显示和排序,如下所示:Php 如何选择所有数据+;在laravel中加入数据,php,mysql,laravel,Php,Mysql,Laravel,我有一个join查询,根据酒店房间的折扣对酒店进行显示和排序,如下所示: $direction=$descending?'DESC':'ASC'; $data=$query->join('住宿房间','住宿.id','=','住宿房间 ->加入(‘折扣’、‘住宿\房间.id’、‘=’、‘折扣.住宿\房间\u id’) ->选择(“住宿*”、“住宿/客房*”、“折扣*”) ->订货人(‘折扣、金额’、‘说明’); 返回$data; 现在,这个查询只会选择那些有折扣房间的酒店,最后,它会对它们进行
$direction=$descending?'DESC':'ASC';
$data=$query->join('住宿房间','住宿.id','=','住宿房间
->加入(‘折扣’、‘住宿\房间.id’、‘=’、‘折扣.住宿\房间\u id’)
->选择(“住宿*”、“住宿/客房*”、“折扣*”)
->订货人(‘折扣、金额’、‘说明’);
返回$data;
现在,这个查询只会选择那些有折扣房间的酒店,最后,它会对它们进行排序,但我想选择所有的住宿,并首先显示那些有折扣房间的酒店。我想做的是,如果房间里有折扣,而且什么也没有发生,我想得到所有的住宿,并对折扣金额进行排序。使用
leftJoin
加入折扣。“左联接”将包括您要开始的表中的所有行,并在第二个表中的不匹配行上联接null
。这不是答案。所以去掉这个。如果你想问一些澄清,请在评论中问他们。是的,将secound join更改为left join可以解决这个问题,这样你就可以编辑你的答案供将来的人使用谢谢