laravel高级的Join语法以及使用Join多个条件

多仓智能订单路由与动态优化方案设计 现在有很多商家会有多个仓库,并分布在不同的城市中,当用户下单后会根据商品库存及订单信息将订单分配到对应的仓库进行发货,如就近原则,本期基于多仓库设计一套订单路由方案,包含核心逻辑、规则优先级和实施方案,适用于多仓协同的订单自动分配场景 阅读详情

在laravel中我们常常会使用join,leftjion和rightjoin进行连表查询,非常的方便,但是我今天遇到一个问题,就是链表查询需要on多个条件,即我要订单的id和发货人都一样,默认的join只支持单个查询,所以我下面总结两种方法:

一、使用原是表达式(不推荐)

原生SQL中我们可以通过如下方法进行:

select * from `orders` left join `users` on `orders`.`usename`=`users`.`usename` and `orders`.`platform`=`users`.`platform` where `orders`.`order_status` = 2

那么结合laravel,我们可以这样:

DB::select('select * from `orders` left join `users` on `orders`.`usename`=`users`.`usename` and `orders`.`platform`=`users`.`platform` where `orders`.`order_status` = :id', ['id' => 1]);
二、使用高级的Join语法(推荐使用)

我们只需要所以如下代码即可完成我们的Join多个条件:

DB::table('users')
    ->join('contacts', function ($join) {
        $join->on('users.id', '=','contacts.user_id')->on('users.usename', '=','contacts.usename');
        })
    ->get();

如果你想要了解更多,我们可以看一下文档中的描述:

让我们以传入一个闭包当作 join 方法的第二参数来作为开始。此闭包会接收 JoinClause 对象,让你可以在 join 子句上指定约束:

DB::table('users')
    ->join('contacts', function ($join) {
        $join->on('users.id', '=','contacts.user_id')->orOn(...);
        })
    ->get();

若你想要在连接中使用「where」风格的子句,则可以在连接中使用 where 和 orWhere 方法。这些方法会比较字段和一个值,来代替两个字段的比较:

DB::table('users')
        ->join('contacts', function ($join) {
            $join->on('users.id', '=', 'contacts.user_id')
                 ->where('contacts.user_id', '>', 5);
        })
        ->get();

原文出处: https://phpartisan.cn/news/15.html

ptrade量化策略之沪深300指数增强 本策略的核心是在沪深300股票池中选股,选择的股票都是市值比较大,业绩比较好的白马股,根据市场相对位置以及基本面因子来选择股票 阅读详情

相关推荐

[官方培训]19-物理模拟 Epic 肖月 笔记

物理引擎全局解算精度的设置,帧率越高,子步越多得到的模拟结果就越精确。引擎默认情况下是以变化的帧率运行的,但是对于Chaos物理引擎来说。一般子步越小,帧率越固定,效果就会更好更稳定一些。图示的分步选项就是依据下方的最长子步时长和最大步数对动态变化的帧率,进一步的做拆分来保证物理效果。对于影视项目建议都开启分步选项。红色框内有三个迭代次数的设置,这是Chaos基于位置的约束求解算法专用的一个设置,可以简单理解为迭代次数越高,当前帧一个子步内得到的结果就越精确。

Tcohneyn的博客 1545

Laravel 连接(Join)

内连接 ( 等值连接 ) $users = Book::join('auth','book.auth_id','auth.id') ->select('book.*','auth.name as auth_name') ->get() ->toArray() 转换成SQL语句 : select `bl_book`.*, `bl_auth`.`name` as...

Marun's Blog 2万+

蛋白组学/磷酸化蛋白组学分析笔记-2

如何校正蛋白丰度?磷酸化组学质谱下机处理。

weixin_43029125的博客 1372

十五、PHP框架Laravel学习笔记——构造器的 join 查询

一.join 查询 使用 join 实现内联接的多表查询,比如三张表进行 inner join 查询; $users = DB::table('users') ->join('books', 'users.id', '=', 'books.user_id') ->join('profiles', 'users.id', '=', 'profiles.user_id') ->select('users.id', 'users.username', 'users.email', 'book

zep 1194

EDA环境下的LSF进阶调优:如何为Cadence/VCS等工具正确配置cgroups与daemon starter

本文深入探讨了在EDA环境中如何为Cadence/VCS等工具正确配置LSF的cgroups与daemon starter,解决资源分配与特殊应用兼容性问题。通过详细解析cgroups技术、daemon starter配置及混合资源管理策略,帮助提升LSF集群的效率和稳定性,特别适用于高性能计算和芯片设计场景。

weixin_33724046的博客 461

告别JTAG!用Artix-7和SPI Flash实现FPGA远程升级的保姆级教程

本文详细介绍了如何利用Artix-7 FPGA和SPI Flash实现FPGA远程升级(OTA)的完整方案。通过硬件连接、Vivado工程配置和STM32模拟更新等步骤,帮助开发者告别传统的JTAG烧录方式,实现高效、安全的远程固件更新,特别适用于嵌入式系统开发中的现场维护场景。

weixin_33964987的博客 364

Laravel 框架构造器的排序分组.子查询 & JOIN 查询 & 构造器的增删改 ⑦

Laravel是一种流行的开源PHP Web应用程序框架,由Taylor Otwell在2011年创建并发布。它提供了一个简洁优雅的语法和丰富的功能集,旨在使Web开发过程更快速、简单和愉悦。MVC架构模式:Laravel采用了MVC(Model-View-Controller)架构模,将应用程序的逻辑分为不同的层,提高了代码的可维护性和可测试性。简洁的语法和表达力:Laravel框架支持具有简洁而表达力的语法,使得编写清晰、易读、易维护的代码成为可能。

m0_61490399的博客 1301

AI测试入门:基于 RAG 的 LLM 应用程序的测试方法「详细介绍」

一个典型的 RAG 架构包括一个检索器(对知识库进行矢量搜索检索上下文的组件)和一个生成器(从检索器中获取检索上下文以构建提示并生成自定义 LLM 响应作为最终输出的组件)。在大多数情况下, 知识库”由存储在向量数据库(如 ChromaDB)中的向量嵌入组成。

blues_C的博客 1870

laravel 模型 join

laravel 模型 join

u012230371的博客 398

YOLO26改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 什么!不知道如何改进模型⁉️ 本专栏已更新260多种不同的改进方法,所使用并改进的每一个模块均包含详细的模块分析、原理讲解、个人总结、多种改进方式以及完整的修改流程,所有改进100%可直接运行,性价比极高。2️⃣ 找不到合适的模块⁉️ 所有改进点均为近三年顶会,顶刊提出的先进算法,将其融入到中,并进行二次创新,新颖度高,创新度高,能够适应不同的任务场景。3️⃣ 不确定自己改进的步骤、结果是否正确⁉️ 订阅专栏即可进群享受模型训练、模型改进、论文写作、投稿选刊,从入门到论文的各种答疑内容,非常适合新手

Limiiiing的博客 6364

磁环电感参数计算

电感饱和是指当电感中的电流超过一定阈值时,电感中的磁场无法继续增加,而是达到一个饱和状态,导致电感的感应电动势减小或消失。电感通常由线圈组成,当通过线圈的电流不断增加时,线圈内部的磁场也随之增加。然而,当电流达到一定程度时,线圈的铁芯磁化达到饱和,无法进一步增加磁场强度。电感饱和的阈值取决于电感的结构、材料和尺寸等因素。通常情况下,电感的额定电流会标明其饱和电流值。一旦电感中的电流超过了饱和电流,电感将饱和并出现异常行为。当我们谈论电感饱和的时候,实际上是在谈论磁芯饱和——空心的电感永远不会饱和。

小幽余生不加糖 4031

laravel 学习(15) 构造器的join查询

xxpxxpoo8的专栏 382

解决gradle下载慢的问题

allprojects块的repositories用于多项目构建,为所有项目提供共同所需依赖包。而子项目可以配置自己的repositories以获取自己独需的依赖包。buildScript块的repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件。根级别的repositories主要是为了当前项目提供所需依赖包。慢的问题在于下载时链接的是官网,而官网下载速度太慢;1、解决gradle不同版本下载慢的问题。但是这个镜像站的版本不全,低版本可以用;有公司做的国内镜像站;

weixin_42551921的博客 2052

php laravel双大括号,laravel高级的Join语法详解以及使用Join多个条件

在laravel中我们常常会使用join,leftjion和rightjoin进行连表查询,非常的方便,但是我今天遇到一个问题,就是链表查询需要on多个条件,即我要订单的id和发货人都一样,默认的join只支持单个查询,所以我下面总结两种方法:一、使用原是表达式(不推荐)原生SQL中我们可以通过如下方法进行select * from `orders` left join `users` on `o...

weixin_39998859的博客 465

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

laravel left join携带多个条件的写法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34405354的博客 5484

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

laravel join 子查询 joinSub的源码剖析

实现join中使用子查询的需求。 实现方法1:joinSub实现方法2:join+getBindings+addBinding源码剖析joinSub方法

WXiangQian 3642

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Laravel Eloquent Join 使用教程

Laravel Eloquent Join 使用教程 项目介绍 Laravel Eloquent Join 是一个扩展包,旨在简化 Laravel Eloquent ORM 中的复杂查询,特别是涉及多表连接的查询。通过这个扩展包,开发者可以更方便地使用 Eloquent 进行复杂的 SQL 查询,而无需编写原始 SQL 语句。 项目快速启动 安装 首先,通过 Composer 安装 Laravel...

gitblog_00235的博客 1009

laravel MySQL连表查询on支持多条件过滤

查询班级下面所有符合条件的学生: 表结构: 班级表: 学生表: 1、长写错误SQL:select c.,s. from class c left join student s on c.id = s.class_id where c.deleted = 0 and s.deleted =0 返回结果: 2、正确的SQL:select c.,s. from class c left join student s on c.id = s.class_id and s.deleted =0 where c.de

阿飞的博客 1685

laravel leftjoin on orOn的源码剖析

laravel leftjoin on orOn的源码剖析, leftjoin连接时需要对不止一个条件进行进行匹配,这时候就需要使用闭包方式

WXiangQian 3694

Laravel联合表查询使用left join造成的性能问题

Laravel联合表查询使用join造成的性能问题Laravel联合表查询使用join造成的性能问题具体问题然后是join那该怎么做?意外的学习:paginate导致的性能问题最终结论 Laravel联合表查询使用join造成的性能问题 问题背景:公司某单个页面查询速度缓慢,一次查询8~12秒一次,被拉去做优化,优化之后2s 具体问题 项目使用了4个join和查询了一堆用不到的数据,首先先把不需要...

Jayj1997的博客 2105

php laravel 连接查询,关于laravel 子查询 & join的使用

本项目中关联了2个数据库'default' => env('DB_CONNECTION', 'mysql'), //默认使用mysql为连接库'connections' => ['mysql' => ['driver' => 'mysql','host' => '192.168.0.xx','database' => 'database','username'...

weixin_30783611的博客 967

laravel 子查询 & join

本项目中关联了2个数据库'default' => env('DB_CONNECTION', 'mysql'), //默认使用mysql为连接库'connections' => [ 'mysql' => [ 'driver' => 'mysql', 'host' => '192.168.0.xx',

rpdhao的博客 1万+

laravel join 子查询 joinSub

laravel join 子查询 joinSub 及 left join 多条件查询...

wgchen 2121

laravel join 关联查询

laravel join关联查询 1、两表关联 $fbaInventoryTb = (new \App\Model\Amz\Fba\InventoryReport)->getTable(); $productTb = (new \App\Model\Amz\Product)->getTable(); $twInventoryTb = (new \App\Model\T...

weixin_42390015的博客 3181

Laravel Eloquent Join 项目推荐

Laravel Eloquent Join 项目推荐 1. 项目基础介绍和主要编程语言 Laravel Eloquent Join 是一个开源的 Laravel 扩展包,旨在增强 Laravel Eloquent ORM 的连接(join)功能。该项目的主要编程语言是 PHP,特别适用于使用 Laravel 框架进行开发的开发者。通过引入这个扩展包,开发者可以更方便地进行复杂的查询操作,尤其是在需...

gitblog_00872的博客 715

java+join替代_laravel 5通过替换Join来优化whereHas

我有一个带过滤器的车辆列表页面 . 我创建了一个范围,用于将选定的过滤器应用于车辆表 . 范围利用了雄辩的whereHas方法 . 但是在执行查询时它会出现严重的性能问题,因为我看到每个whereHas都转换为子查询而不是Join . 请参阅下面的我的范围函数和查询运行public function scopeApplyFilter($query, $conditions, $featured=0...

weixin_36394468的博客 322
上一篇: composer install 报错
下一篇: redis报错 : protocol error, got 'J' as reply type byte
erternalKing
博客等级 码龄9年 27粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值