mysql - Laravel:根据另一个表中的其他数据选择数据
问题描述
我正在研究公交车站管理系统。我正在尝试在时间表中排队公共汽车。所以我想要的是这个:
我想显示不在特定时间表队列中的特定车站的所有巴士。
-如果一个车站有 5 辆公共汽车,那么其中有两辆在特定时间表的队列中,我想显示所有其他 3 辆公共汽车要选择到队列中。
巴士表
车站表
所以我这样做了
public function getBusQueue(Request $request)
{
$id = $request->id; // id of the targert schedule
// getting the target station id;
$schedule = Schedule::find($id);
$stations_id = $schedule->station_id;
// getting the buses that are not in queues table
$buses = DB::table("buses")->select('*')
->whereNotIn('bus_number',function($query) {
$query->select('bus_number')->from('queues');
})
->where('Schedule_id', $id)
->where('station_id', $stations_id)
->get();
$data = $buses;
return Response()->json($data);
}
解决方案
如果我理解正确,此查询中的相关时间表是队列的,而不是公共汽车的。
(此外,您似乎schedule_id
在表中输入了错误的列名buses
。它当前名为schedual_id
。)
尝试将查询更改为以下内容:
$buses = DB::table("buses")->select('*')
->whereNotIn('bus_number',function($query) use($id) {
$query->select('bus_number')
->from('queues')
->where('schedule_id', $id);
})
->where('station_id', $stations_id)
->get();
推荐阅读
- postgresql - 是否可以从 WAL 中恢复 db 两次?
- objective-c - playerItemDidReachEnd 移动到错误的 ViewController
- css - 如何微调列表项目符号/编号的位置
- css - 使引导卡占用空格
- android-layout - 如何仅将约束布局添加到浮动操作按钮?
- javascript - oracle 节点 executeMany 与动态 sql 查询
- python - 为上传到 Google 云端硬盘中的私人文件生成可下载链接
- fortran - 使用 MPI_Type_contiguous 和 MPI_Type_create_struct 与 MPI 发送/接收声明的数据结构有什么区别
- c++ - CAN 套接字读取延迟帧
- macos - Catalina 上的 localhost 镀铬