gpt4 book ai didi

php - Laravel Eloquent 仅选择未用作外键的数据

转载 作者:行者123 更新时间:2023-11-29 01:54:43 25 4
gpt4 key购买 nike

我有这个方案的许可证表:

license_id | licenseKey | update_from

此表包含一些许可证 key ,可以从其他许可证更新。

update_from 指向数据的id,如果为null,则许可证不是更新。

我如何才能只选择不用作更新的许可证? (其 id 未用作 update_from)

例子:我有这张 table :

license_id | licenseKey  | update_from
1 | XX-XX-XX-XX | null
2 | YY-YY-YY-YY | null
3 | ZZ-ZZ-ZZ-ZZ | 1

从这些数据中,我想选择 id 为 2 和 3 的数据(3 是 1 的更新,所以我不想选择 1,因为它已经更新了)

编辑:使用此代码解决的问题:

$subquery = License::select('update_from')->whereNotNull('update_from')->toSql();
$query->whereRaw('license_id not in (' . $subquery . ')');

我已经有一个查询 $query,只是用这段代码更新了它。

最佳答案

我认为这个解决方案更“ Eloquent ”并且不处理 SQL。

$licenses = License::whereNotIn('id',function($query){
$query->from((new License)->getTable())->whereNotNull('update_from')->lists('update_from');
})->get();

关于php - Laravel Eloquent 仅选择未用作外键的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32347771/

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