Mysql 将此Sql转换为雄辩的

Mysql 将此Sql转换为雄辩的,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,我如何用雄辩的语言创建这个查询 SELECT * FROM `contents` WHERE `id` NOT IN ( SELECT `id` FROM `contents` AS `laravel_reserved_0` WHERE `laravel_reserved_0`.`parent_id` IN ( SELECT `id`

我如何用雄辩的语言创建这个查询

SELECT
    * 
FROM
    `contents` 
WHERE
    `id` NOT IN (
    SELECT
        `id` 
    FROM
        `contents` AS `laravel_reserved_0` 
    WHERE
        `laravel_reserved_0`.`parent_id` IN ( 
            SELECT
                `id` 
            FROM
                `contents` AS `laravel_reserved_1` 
            WHERE
                `laravel_reserved_1`.`type` IN ( 'pro' )
            ) 
    ) 
AND `is_active` = 1 
AND `type` IN ( 'stars', 'video', 'article' )
GROUP BY
    `slug` 
ORDER BY
    `created_at` DESC 
    LIMIT 10

您可以执行多个查询,对于嵌套查询可以单独执行

$typeIDs = Content::whereIn('type', ['pro'])->pluck('id');

$parentIDs = Content::whereIn('parent_id', $typeIDs)->pluck('id');

$contents = Content::whereNotIn('id', $parentIDs)
    ->where('is_active', 1)
    ->whereIn('type', ['stars', 'video', 'article'])
    ->groupBy('slug')
    ->orderBy('created_at', 'desc')
    ->limit(10)
    ->get();

除此之外,如果您愿意,还可以用实际查询本身替换创建的变量。

到目前为止您尝试了什么?使用它们的文档: