从3个表中选择2个外键

时间:2017-04-16 19:32:48

标签: sql postgresql laravel select join

我有一个表service,其中包含<PK> id<FK> plate_number

然后我有一个表vehicles,其中包含<PK> plate_number和其他不重要的列。

下表是包含part_fix<FK> service_id的绑定表<FK> part_id

最后一个是part,列<PK> idnameprice

我正在使用Laravel查询构建器但现在不是那么重要,以防万一有人知道如何使用它,查询构建器中的解决方案对我来说会更好,但简单的postgresql查询就好了。

我想从表selectservice {我要在表<PK> id<PK> plate_number中显示,并使用绑定表,我想分配部分每个service。我有绑定表,因为有很多关系(一个维修/服务可以有很多部件,还有一部分可以在autoshop的许多维修中使用)。

我希望我解释得很好,如果没有请问。

1 个答案:

答案 0 :(得分:0)

您可能想要做类似

的事情
public function vehicle() {
  return $this->belongsTo(Vehicle::class);
}

public function parts() {
  return $this->belongsToMany(Part::class, 'part_fix', 'part_id', 'service_id');
}

将您的Service类上的关系定义为

echo $service->vehicle->plate_number;
foreach($service->parts as $part) {
  echo $part->name
}

这应该允许你加载

后的内容
Local Sales