一、联表查询
联表要求至少得有2张表(除了自己【表】连接自己【表】,自联查询),并且还是存在关系的两张表。
例如:可以建立2张表:文章表、作者表。
文章表(article):
id | 主键 |
---|---|
Article_name | 文章名称,varchar(50),not null |
Author_id | 作者id,int,not null |
作者表(author):
id | 主键 |
---|---|
Author_name | 作者名称 ,varchar(20),not null |
1.1 创建迁移文件
php artisan make:migration create_article_table
php artisan make:migration create_author_table
article
加上字段:
$table->increments('id');
$table->string('article_name', 50)->comment('文章标题');
$table->integer('author_id') -> comment('作者id');
$table->timestamps();
author
加上字段:
$table->increments('id');
$table->string('author_name', 20) -> comment('作者名称');
$table->timestamps();
1.2 执行迁移文件
然后执行迁移文件:
php artisan migrate
1.3 模拟数据(通过填充器)
1、创建填充器文件(可以将多个数据表的写入操作写在一起)
php artisan make:seeder ArticleAndAuthorTableSeeder
2、编写数据模拟的代码
3、执行填充器
php artisan db:seed --class=ArticleAndAuthorTableSeeder
1.4 联表查询例子
要求查询数据表(文章表、作者表),查询出文章的信息包含了作者名称,联表查询一共有:内联表(inner)、左联表(left)、右联表(right)。
原始sql语句:【左外联表】
select article.id,article.article_name, author.author_name from article left join author on article.author_id = author.id
将上述的sql语句改成链式操作:
语法:DB 门面/模型 -> join 联表方式名称(关联的表名,表1的字段,运算符,表2的字段)
左连接:如果你是想要执行左链接
而不是内链接
可以使用leftJoin
方法,该方法和join
方法的用法
创建路由:
创建方法:
效果:
在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。