Laravel框架中连表查询

联表查询

联表要求至少得有2张表(除了自己连接自己),并且还是存在关系的两张表。

例如:可以建立2张表:文章表、作者表。

文章表(article):

	Id					主键
	Article_name		文章名称
	Author_id			作者(作者id)

作者表(author):

	Id					主键
	Author_name			作者名称

①创建迁移文件

#php artisan make:migration create_article_table
#php artisan make:migration create_author_table

Laravel框架中连表查询_第1张图片

②相继编写2个迁移文件的代码

文章表的迁移代码:
Laravel框架中连表查询_第2张图片
Laravel框架中连表查询_第3张图片

作者表的迁移代码:
Laravel框架中连表查询_第4张图片Laravel框架中连表查询_第5张图片

③执行生成数据表的迁移文件

#php artisan migrate

Laravel框架中连表查询_第6张图片Laravel框架中连表查询_第7张图片

④模拟数据(通过填充器来实现)
a. 创建填充器文件(可以将多个数据表的写入操作写在一起)

#php artisan make:seeder ArticleAndAuthorTableSeeder

Laravel框架中连表查询_第8张图片

b. 编写数据模拟的代码
Laravel框架中连表查询_第9张图片
Laravel框架中连表查询_第10张图片

c. 需要执行填充器文件

#php artisan db:seed --class=ArticleTableSeeder
#php artisan db:seed --class=AuthorTableSeeder

Laravel框架中连表查询_第11张图片

数据表的结果:
Laravel框架中连表查询_第12张图片Laravel框架中连表查询_第13张图片

案例:要求查询数据表(文章表、作者表),查询出文章的信息包含了作者名称。
例如:查询id为1的文章,其结果应为1 我有很多小花你要吗 人民网
分析:
数据来源:文章表、作者表
表1:文章表 t1 主表(跟在from关键词后面的表)
表2:作者表 t2 从表(跟在join关键词后面的表)
关联条件:t1.author_id = t2.id
联表方式:左外连接
原始的sql语句:

select t1.id,t1.article_name,t2.author_name from article as t1 left
join author as t2 on t1.author_id = t2.id;

将上述的sql语句改成链式操作:
语法:DB门面/模型 -> join联表方式名称(关联的表名,表1的字段,运算符,表2的字段)
Laravel框架中连表查询_第14张图片

a. 创建需要的路由
在这里插入图片描述

b. 创建test18方法,实现将sql语句改写成链式操作实现刚才的案例效果
Laravel框架中连表查询_第15张图片

显示结果:
Laravel框架中连表查询_第16张图片

你可能感兴趣的:(PHP,Laravel,php,lavarel,后端)