gpt4 book ai didi

php - 在 Laravel 中组合 orWhere 和 Where

转载 作者:行者123 更新时间:2023-11-29 02:12:36 27 4
gpt4 key购买 nike

我有一个 SQL 查询如下:

SELECT * FROM AS T
INNER JOIN TABLE2 AS T2 ON T1.id =T2.tid
WHERE (t1.userid= $userid AND t1.unitid IN (2,3))
OR (t2.requesterid=$userid AND t2.requestertype IN(1,5))

在 Laravel 中使用原始查询我可以做到:

DB::table("TABLE1 as T1")
->join("TABLE2 as T2", "T1.userttype", " =","T2.tid")
->whereRaw("(t1.userid= $userid AND t1.unitid IN (2,3)) OR (t2.requesterid=$userid AND t2.requestertype IN(1,5)")->get();

但是这个怎么通过Laravel或者Where结构来实现。我试过了:

DB::table("TABLE1 as T1")
->join("TABLE2 as T2", "T1.userttype", "=", "T2.tid")
->where(function($query) use ($userid) {
$query->where("t1.userid", $userid)
->whereIn("t1.unitid", [2,3])
->orwhere("t2.requesterid", $userid)
->whereIn("t2.requestertype", [1,5])
});

如何做到这一点?

最佳答案

您应该尝试两个内部函数。试试这个:

DB::table("TABLE1 as T1")
->join("TABLE2 as T2", "T1.userttype", "=", "T2.tid")
->where(function($query) use ($userid) {
$query->where("t1.userid", $userid)
->whereIn("t1.unitid", [2,3]);
})->orWhere(function($query) use ($userid) {
$query->where("t2.requesterid", $userid)
->whereIn("t2.requestertype", [1,5]);
});

关于php - 在 Laravel 中组合 orWhere 和 Where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47778276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com