您好,我这里有1个连接表,这是我的连接语句。但是我只有一个连接语句,并且只获取1个表,我需要另外4个表来连接或获取,所以如何在此sql连接查询中做到这一点
让我们假设我需要添加以下表:products
,stocks
,foods
,beverage
我的加入查询语句
$getairId = DB::table('aircrafts')
->join('movies','movies.aircraft_id','=','aircrafts.aircraft_id')
->select('movies.*')
->where('aircrafts.aircraft_id','=', $airid)
->get();
如何添加另一个联接
答案 0 :(得分:0)
我是新来的laravel,但是我写了两个联接来检索created_by
和updated_by
类别表中的名称以及用户表中的名称
这是我的查询
$result = DB::table('categories')
->leftJoin('users as created_table', 'created_table.id', '=', 'categories.created_by')
->leftJoin('users as updated_table', 'updated_table.id', '=', 'categories.updated_by')
->select('categories.*','created_table.name as created_by','updated_table.name as updated_by')
->paginate(3);
请添加尽可能多的联接并根据您的要求进行定制
添加屏幕截图
categories
表数据
users
表数据
刀片文件可消除数据
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">
Category
<strong style="float:right;"><a href="{{ url('/category/add') }}">Add</a> | </strong>
</div>
<table cellpadding="5" cellspacing="5" border="1">
<tr>
<td>#</td>
<td>Category Name</td>
<td>Created Date</td>
<td>Created By</td>
<td>Updated By</td>
</tr>
<?php $sno = 0 ?>
@foreach($result as $data_key => $data)
<!-- {{ $sno++ }} -->
<tr>
<td>{{ $loop->iteration }}</td>
<td>{!! $data->category_name !!}</td>
<td>{!! $data->created_at !!}</td>
<td>{!! $data->created_by !!}</td>
<td>{!! $data->updated_by !!}</td>
</tr>
@endforeach
</table>
<div class="card-header">
{{ $result->links() }}
</div>
</div>
</div>
</div>
</div>
@endsection
答案 1 :(得分:0)
或者您可以寻求雄辩的关系laravel eloquent relationship。如果您想使用较少的联接查询,这将对您有所帮助。
EX。您可以像这样获取飞机的详细信息
在飞机上雄辩地添加此功能
public function movie()
{
return $this->hasOne('App\Movie','aircraft_id','aircraft_id');
}
您可以在控制器中像这样使用它
$getairId = DB::table('aircrafts')->with('movie')->get();