Laravel: select 数据基于另一个 table 中的其他数据
Laravel: select data based on other data in another table
我正在研究公交车站管理系统。我正在尝试按时间表排队。
所以我想要的是:
我想显示所有不在特定时间表队列中的特定车站的公交车。
- 就像如果一个车站有 5 辆公共汽车,那么其中两辆在特定时间表的队列中,我想显示所有其他 3 辆公共汽车被选择到队列。
这里是时间表table。
队列表
公交车Table
站Table
所以我这样做了
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);
}
如果我没理解错的话,这个查询中的相关时刻表是队列的,不是公交车的。
(此外,您似乎在 buses
table 中输入了错误的 schedule_id
列名称。它当前名为 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();
我正在研究公交车站管理系统。我正在尝试按时间表排队。 所以我想要的是:
我想显示所有不在特定时间表队列中的特定车站的公交车。
- 就像如果一个车站有 5 辆公共汽车,那么其中两辆在特定时间表的队列中,我想显示所有其他 3 辆公共汽车被选择到队列。
这里是时间表table。
队列表
公交车Table
站Table
所以我这样做了
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);
}
如果我没理解错的话,这个查询中的相关时刻表是队列的,不是公交车的。
(此外,您似乎在 buses
table 中输入了错误的 schedule_id
列名称。它当前名为 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();