我试图从两个表中选择。从人员表需要名称和图像URL以及消息表需要用户发送/接收的最后一条消息。
在人们中,人员ID字段是唯一的,而消息表具有人员ID。
我编写了执行任务的简单查询,但是当我在laravel中使用相同的查询时,它给出了一个错误说"访问冲突"
这是我运行时的sql语句:
select people.id, people.first_name, people.last_name, people.img_url, user_messages.message, user_messages.created_at from people inner join user_messages on people.id = user_messages.people_id where people.user_id =1 group by people.id order by user_messages.created_at DESC
这是带错误的Laravel查询
$people = DB::table('people')->select('people.id','people.first_name','people.last_name','people.img_url' ,'user_messages.message','user_messages.created_at')
->join('user_messages','people.id','=','user_messages.people_id')
->where(['people.user_id' => $user_id])
->groupBy('people.id')
->orderBy('user_messages.created_at', 'desc')
->get();
如果我包含所有字段,它没有显示错误消息,但随后选择了所有消息。
答案 0 :(得分:0)
$people = DB::table('people')
->join('user_messages','people.id','=','user_messages.people_id')
->select('people.id','people.first_name','people.last_name','people.img_url' ,'user_messages.message','user_messages.created_at')
->where(['people.user_id' => $user_id])
->groupBy('people.id')
->orderBy('user_messages.created_at', 'desc')
->get();