Php Laravel将右连接转换为左连接
我一直在尝试将右连接查询转换为左连接查询,以便在laravel查询生成器中使用它。这是我的Sql语句,它可以完美地工作Php Laravel将右连接转换为左连接,php,mysql,sql,join,laravel,Php,Mysql,Sql,Join,Laravel,我一直在尝试将右连接查询转换为左连接查询,以便在laravel查询生成器中使用它。这是我的Sql语句,它可以完美地工作 select `weekday`.`name`, `open_time`, `close_time` from `schedule` join `restaurants_has_schedule` on `schedule`.`id` = `restaurants_has_schedule`.`schedule_id` and `restaurants_has_sched
select `weekday`.`name`, `open_time`, `close_time`
from `schedule`
join `restaurants_has_schedule` on `schedule`.`id` = `restaurants_has_schedule`.`schedule_id`
and `restaurants_has_schedule`.`restaurants_id` = 1
right join `weekday` on `weekday`.`id` = `schedule`.`weekday_id`
ORDER BY `weekday`.`id`
|------
|name|open_time|close_time
|------
|Domingo|NULL|NULL
|Lunes|NULL|NULL
|Martes|NULL|NULL
|Miercoles|NULL|NULL
|Jueves|14:11:51|14:11:51
|Vienes|09:11:21|17:00:00
|Sábado|NULL|NULL
但当将其转换为left join时,它将停止工作,为每个餐厅id
显示相同的数据。这是我的左join语句
select `weekday`.`name`, `open_time`, `close_time`
from `weekday`
left join `schedule` on `weekday`.`id` = `schedule`.`weekday_id`
join `restaurants_has_schedule` on `schedule`.`id` = `restaurants_has_schedule`.`schedule_id`
and `restaurants_has_schedule`.`restaurants_id` = 1
ORDER BY `weekday`.`id`
我做错了什么?还有其他选择吗?提前告诉你尝试使用Laravels雄辩的ORM,它处理人际关系非常酷!不再需要解析或编写sql查询 请参见此处关于& 或者,一般来说,关于orm,您应该尝试一下: 对象角色建模 来自Laravel文档的示例: 一篇帖子可能有很多评论 一对多:
class Post extends Eloquent {
public function comments()
{
return $this->hasMany('Comment');
}
}
其中“注释”是模型
“反向”用于定义:
class Comment extends Eloquent {
public function post()
{
return $this->belongsTo('Post');
}
}
其中“Post”是模型
然后作为查询:
$comments = Post::find(1)->comments; //by Primary Key
或
…真的很酷,很多人都能看到我用嵌套联接解决的文档。从
工作日
中选择名称
,打开时间
,关闭时间
(schedule
joinrestaurants\u has\u schedule
onschedule
idrestaurants\u has\u schedule在工作日
id
=日程安排
工作日
按工作日
订购
$comments = Post::where('somefield', '=', 'somevalue')->comments->get();