laravel内部连接查询

gmxoilav  于 2021-06-17  发布在  Mysql
关注(0)|答案(4)|浏览(321)

我想把这个mysql查询改成larvel语法。
mysql内部连接

select u.name , c.title , c.content 
 from users u 
 inner join communities  c on u.id = c.user_id
 where u.name like '%name%'
8yparm6h

8yparm6h1#

DB::table('tableName')
->join('communities AS c','c.user_id','=','tableName.id')
->where('tableName.name','LIKE','name')
->select('tableName.name','c.title','c.content')
->get();

我希望这对你有帮助。谢谢

3gtaxfhh

3gtaxfhh2#

不知道你所说的拉维尔语法是什么意思。但我认为你在想拉维尔的雄辩或查询生成器:
您的查询:

select u.name , c.title , c.content 
 from users u 
 inner join communities  c on u.id = c.user_id
 where u.name like '%name%'

查询生成器:

DB::table('users')
     ->select(['name', 'c.title', 'c.content'])
     ->join('communities as c', 'c.user_id', '=', 'users.id')
     ->where('name', 'like', '%' . $request->name . '%')
     ->get()

雄辩(如果你有这些模型):

User::with('communities')
        ->where('name', 'like', '%' . $request->name . '%')
        ->get();

注:用户模型应具有社区关系:

public function communities(){
      return $this->hasMany(Community::class);
   }
e3bfsja2

e3bfsja23#

可以使用laravel查询生成器。添加 use DB; 在你的控制器的顶端。
当你想得到数据的时候就用这个。

$users = DB::table('users')
                ->join('communities', 'users.id', '=', 'communities.user_id')
                ->select('users.name , communities.title , communities.content')
                ->where('users.name','LIKE','%name%')
                ->get();
but5z9lq

but5z9lq4#

尝试此查询:

DB::table('users')
     ->select(['users.name', 'communities.title', 'communities.content'])
     ->join('communities', 'communities.user_id', '=', 'users.id')
     ->where('users.name', 'like', '%' . $request->name . '%')
     ->get();

相关问题