【发布时间】:2021-07-27 02:02:07
【问题描述】:
我尝试在 Laravel eloquent 中使用以下 mysql 子句:
SELECT * FROM pages
INNER JOIN page_translations as pt
ON pages.id = pt.page_id
WHERE NOT (page_id IN (93) AND locale IN ('de', 'en'));
但是,由于“WHERE NOT”,我无法实现它,相反,只使用 WHERE 没有问题。
所以我走了这么远:
Page::join('page_translations as pt', 'pages.id', '=', 'pt.page_id')
->where(function($query) use ($homes) {
$query->whereIn('pages.id', $homes->values()->toArray());
$query->whereIn('locale', $homes->keys()->toArray());
})
->get();
我试图通过使用 'whereRaw' 或 Raw 子句来解决它,但这并没有真正帮助。
如果有人可以告诉我如何将此 SQL 查询带到 Laravel Eloquent,那就太好了。
【问题讨论】:
-
你为什么不使用关系?
-
你的意思是你要使用
whereNotIn?? -
我需要对项目进行排序,这就是我使用联接的原因