1、连接查询(join)
连接查询指的是将两张表或多张表关联到一起进行查询,获取一个表的行与另一个表的行匹配的数据。常见的连接查询包括内连接(等值连接)、左(外)连接、右(外)连接和交叉连接(完全连接)等。
我们将用户表users和文章表posts关联到一起进行查询,在此之前,我们先创建posts表,其字段及初始值如下:
其中user_id对应users表中的用户id。
1.1 内连接
内连接用于获取两张表结果集的交集部分,我们可以使用查询构建器的join方法进行内连接查询:
$users = DB::table('users')->join('posts','users.id','=','posts.user_id')->get();
dd($users);
显示结果如下:
array:3 [▼
0 => {
#226 ▼
+"id": 1
+"name": "Laravel"
+"email": "laravel@test.com"
+"password": "123"
+"remember_token": "x"
+"created_at": "0000-00-00 00:00:00"
+"updated_at": "0000-00-00 00:00:00"
+"title": "test1"
+"content": "test1"
+"user_id": 1
}
1 => {
#227 ▼
+"id": 2
+"name": "Laravel"
+"email": "laravel@test.com"
+"password": "123"
+"remember_token": "x"
+"created_at": "0000-00-00 00:00:00"
+"updated_at": "0000-00-00 00:00:00"
+"title": "test2"
+"content": "test2"
+"user_id": 1
}
2 => {
#228 ▼
+"id": 3
+"name": "Academy"
+"email": "academy@test.com"
+"password": "123"
+"remember_token": "y"
+"created_at": "0000-00-00 00:00:00"
+"updated_at": "0000-00-00 00:00:00"
+"title": "test