如何从Laravel 5中的多个表中获取特定列?

如何从Laravel 5中的多个表中获取特定列?,laravel,laravel-5,eloquent,laravel-5.2,laravel-query-builder,Laravel,Laravel 5,Eloquent,Laravel 5.2,Laravel Query Builder,我有三张桌子 国家: 身份证件 名字 省: 身份证件 名称 国家识别号 城市: 身份证件 名称 省id 我在模型中定义了如下关系: 国家模式: public function Provinces() { return $this->hasMany('App\Province'); } 省模式: public function Country() { return $th

我有三张桌子

  • 国家: 身份证件 名字

  • 省: 身份证件 名称 国家识别号

  • 城市: 身份证件 名称 省id

  • 我在模型中定义了如下关系:

    国家模式:

        public function Provinces()
            {
                return $this->hasMany('App\Province');
            }
    
    省模式:

            public function Country()
            {
                return $this->belongsTo('App\Country');
            }
    
            public function Cities()
            {
                return $this->hasMany('App\City');
            }
    
    城市模式:

        public function Province()
            {
                return $this->belongsTo('App\Province');
            }
    
    我正在使用下面的查询,但它会用国家名称覆盖所有数据

        $city = DB::table('cities')
            ->join('provinces', 'cities.province_id', '=', 'provinces.id')
            ->join('countries', 'provinces.country_id', '=', 'countries.id')
            ->select('cities.name','provinces.name','countries.name')
            ->get();
    

    我只想从laravel 5中的这些表中获取城市名称、省名称和国家名称的结果。你能帮我吗?

    试着用
    作为

    ->select('cities.name as city_name', 'provinces.name as province_name', 'countries.name as country_name')
    

    你能试试这个吗:

    $city = DB::table('cities')
        ->join('provinces', 'cities.province_id', '=', 'provinces.id')
        ->join('countries', 'provinces.country_id', '=', 'countries.id')
        ->get(['cities.name', 'provinces.name', 'countries.name']);
    

    我希望它能帮助你

    好的,这将是一个具体的答案 了解laravel的不动产,看看这些

    class example1 extends Model
        {
          public function examplefunction() {
            return $this->hasMany('App\othermodel', 'id');
        }
    }
    
    然后使用这个查询

    $abc=example1::with('examplefunction')->get();
    

    现在,你只需看看拉威尔关系,通过使用这个,你可以得到综合结果,这是一个完全不同的问题。谢谢,它不起作用了。它正在用Country Name的值替换所有值。请在不使用select子句的情况下重试!
     $products = User::select('id', 'email', 'first_name', 'last_name','country_code','mobile')->get()->toArray();
           $gaurang = Ticket_Thread::select('body','title','resolv_note')