Laravel框架中连表查询

25 篇文章 1 订阅

联表查询

联表要求至少得有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

在这里插入图片描述

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

文章表的迁移代码:
在这里插入图片描述
在这里插入图片描述

作者表的迁移代码:
在这里插入图片描述在这里插入图片描述

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

#php artisan migrate

在这里插入图片描述在这里插入图片描述

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

#php artisan make:seeder ArticleAndAuthorTableSeeder

在这里插入图片描述

b. 编写数据模拟的代码
在这里插入图片描述
在这里插入图片描述

c. 需要执行填充器文件

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

在这里插入图片描述

数据表的结果:
在这里插入图片描述在这里插入图片描述

案例:要求查询数据表(文章表、作者表),查询出文章的信息包含了作者名称。
例如:查询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的字段)
在这里插入图片描述

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

b. 创建test18方法,实现将sql语句改写成链式操作实现刚才的案例效果
在这里插入图片描述

显示结果:
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值