laravel 中将一对多关联查询的结果去重处理
先交代下数据表结构
- 主表(订单表)order数据
| ord_id | order_sn |
| 1 | EX2019100123458 |
其中主键为order_id(订单id)
- 子表(门票表)order_item数据
| ord_ite_id | ord_id | exhibit_sn | type |
| 1 | 1 | EXSN20191001001 | 1 |
| 2 | 1 | EXSN20191001002 | 1 |
| 3 | 1 | EXSN20191001003 | 1 |
主表与子表之间通过 ord_id进行关联
实现:通过通过子表的 type(门票类型)查询主表中的订单编号
第一种尝试:
select DISTINCT `order`.ord_id from `order` INNER JOIN order_item on order.ord_id = order_item.ord_id where type = 1;
这种方法可以实现但是在laravel中如果想分页的话需要这么使用
DB::table(DB::raw("sql语句"))->paginate(15);
但是这样的话我们相当于使用的原生sql语句,但是如果在添加条件的话只能去拼接sql语句啦
第二种尝试:
select `order`.ord_id,`order`.order_sn from `order` INNER JOIN (select distinct ord_id from order_item) r on `order`.ord_id=r.ord_id
在larave中使用
Order::join(DB::raw("(select distinct order_item.ord_id item_ord_id,type from order_item) ".env("DB_PREFIX")."bb"),"bb.item_order_id","exhibit_order.order_id")->paginate(15);
这样我们可以继续使用 where() 方法来添加条件
laravel 中将一对多关联查询的结果去重处理的更多相关文章
- 7.mybatis一对多关联查询
和第5节一对一查询类似,但是不同的是,一对一使用的是association,而一对多使用collection. 实例: 1个班级Class,对应1个老师Teacher,对应多个学生Student 1. ...
- [转]NHibernate之旅(10):探索父子(一对多)关联查询
本节内容 关联查询引入 一对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 关联查询引入 在NHibernate中提供了三种查询方式给我们选择:NH ...
- MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)
MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis ...
- MyBatis从入门到放弃四:一对多关联查询
前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询.一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collection属性,别忽略了ofType属性. 搭建开发 ...
- MyBatis:一对多关联查询
MyBatis从入门到放弃四:一对多关联查询 前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询.一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collecti ...
- MyBatis关联查询,一对多关联查询
实体关系图,一个国家对应多个城市 一对多关联查询可用三种方式实现: 单步查询,利用collection标签为级联属性赋值: 分步查询: 利用association标签进行分步查询: 利用collect ...
- mybatis一对多关联查询+pagehelper->分页错误
mybatis一对多关联查询+pagehelper->分页错误. 现象: 网上其他人遇到的类似问题:https://segmentfault.com/q/1010000009692585 解决: ...
- mybatis collection 一对多关联查询,单边分页的问题总结!
若想直接通过sql实现多级关联查询表结构得有2 个必不可少的字段:id ,parentId,levelId id:主键id, parentId:父id levelId:表示第几级(表本身关联查询的时候 ...
- MyBatis4——一对一、一对多关联查询
关联查询: 一对一: 1.业务扩展类 核心:用resultType指定的类的属性包含多表查询的所有字段. 2.resultMap 通过添加属性成员建立两个类之间的连接 <!--利 ...
随机推荐
- Tensorflow 循环神经网络 基本 RNN 和 LSTM 网络 拟合、预测sin曲线
时序预测一直是比较重要的研究问题,在统计学中我们有各种的模型来解决时间序列问题,但是最近几年比较火的深度学习中也有能解决时序预测问题的方法,另外在深度学习领域中时序预测算法可以解决自然语言问题等. 在 ...
- RabbitMQ 入门教程(PHP版) 使用rabbitmq-delayed-message-exchange插件实现延迟功能
延迟任务应用场景 场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时. 场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单. 场景三:过1分钟给新 ...
- k8s记录-dockerfile
FROM 代表基于哪个镜像 RUN 安装软件使用 MAINTAINER 镜像的创建者 CMD 容器启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD EN ...
- 增强篇4 CO01生产订单屏幕增强
Step1. 结构 CO_AUFK 里增加自定义字段:ZZZ_TRIAL 然后激活结构 查看AUFK是激活状态, 字段增强完成: Step2. CMOD 使用客户增强:PPCO0012 生产订 ...
- Python - Django - ORM 分组查询补充
单表查询: models.py: from django.db import models class Employee(models.Model): name = models.CharField( ...
- Go语言学习笔记——Go语言数据类型
布尔型 布尔型的值只可以是常量 true 或者 false.一个简单的例子:var b bool = true. 数字类型 整型 int 和浮点型 float32.float64,Go 语言支持整型和 ...
- 【Leetcode_easy】896. Monotonic Array
problem 896. Monotonic Array solution1: class Solution { public: bool isMonotonic(vector<int>& ...
- C# 文档注释规范
C# 提供一种机制,使程序员可以使用含有 XML 文本的特殊注释语法为他们的代码编写文档.在源代码文件中,具有某种格式的注释可用于指导某个工具根据这些注释和它们后面的源代码元素生成 XML.使用这类语 ...
- SQL命令如何分发到集群的各节点
有些数据库集群的规模是很大的,有上百个节点,那么维护SQL命令如何快速分发给各个节点,例如:要加个字段,逐个节点操作那是十分低效,枯燥的. TreeSoft增加了[SQL分发]功能,简单配置,可以快速 ...
- PCA分析的疑问
R 与python scikit-learn PCA的主成分结果有部分是反的 通过R和python分别计算出来的PCA的结果存在某些主成分的结果是相反的,这些结果是没有问题的,只是表示这个分量被反转了 ...