十五、联表查询

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

例如:可以建立2张表:文章表、作者表【以目前比较火的网站:知乎】。
文章表(article):
Id 主键
Article_name 文章名称,varchar(50),notnull
Author_id 作者(作者id),int,notnull

作者表(author):
Id 主键
Author_name 作者名称,varchar(20),notnull

①创建迁移文件
#php artisan make:migration create_article_table
#php artisan make:migration create_author_table
在这里插入图片描述
②相继编写2个迁移文件的代码
文章表的迁移代码:
在这里插入图片描述
作者表的迁移代码:
在这里插入图片描述
③执行生成数据表的迁移文件
#php artisan migrate
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
④模拟数据(通过填充器来实现)
a. 创建填充器文件可以将多个数据表的写入操作写在一起
在这里插入图片描述
b. 编写数据模拟的代码

提示:填充器的模拟数据,可以参考“文件”文件夹中的数据。
在这里插入图片描述
在这里插入图片描述
c. 需要执行填充器文件
#php artisan db:seed --class=ArticleAndAuthorTableSeeder
在这里插入图片描述
数据表的结果:
在这里插入图片描述
在这里插入图片描述
案例:要求查询数据表(文章表、作者表),查询出文章的信息包含了作者名称
联表查询一共有:内连接(inner)、左连接(left)、右连接(right)。

原始的sql语句:【左外连接】
表:文章表(article)主 t1、作者表(author)从 t2
关联关系:t1.author_id = t2.id
原生的sql:select t1.id,t1.article_name as article_name,t2.author_name as author_name from article as t1 left join author as t2 on t1.author_id = t2.id;

执行结果:
在这里插入图片描述
将上述的sql语句改成链式操作:
语法:DB门面 -> join联表方式名称小驼峰写法(关联的表名,表1的字段,运算符,表2的字段)
在这里插入图片描述
a. 创建需要的路由
在这里插入图片描述
b. 创建test15方法,实现将sql语句改写成链式操作实现刚才的案例效果
在这里插入图片描述
显示结果:
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值