"Laravel Eloquent DB::Raw查询不支持同时使用WHERE语句和子查询"
P粉191610580
P粉191610580 2024-01-16 13:01:17
[MySQL讨论组]

当我将以下查询粘贴到我的SQL工具中时,它可以正常运行,但是通过Laravel运行时返回零行。

$sql = "
SELECT main_query.* FROM (
    SELECT
        c.id,
        c.name,
        c.order,
        cd.case,
        (SELECT count(*) from logs cl
            where
            c.id = cl.id
            and cl.status = 'OPEN'
        ) as cl_count,
        sdsc.task
    FROM `table` c
    INNER JOIN `table2` cd ON (c.id = cd.id)
    LEFT JOIN `table3` sdsc ON (c.id = sdsc.id)
    WHERE
        c.status = 'NEW'
    GROUP BY c.id
    ORDER BY cd.updated_at DESC                    
) main_query                
where main_query.cl_count > 1
GROUP BY main_query.id
ORDER BY main_query.updated_at DESC
limit 0,20
";

由于实际查询的复杂性,我无法完全将其转换为Eloquent查询,因此我使用DB::select(DB::raw($searchQuery)); 来执行它。

如果我删除where main_query.cl_count > 1,查询就可以正常运行。是什么导致它失败,并且我该如何重写代码?

P粉191610580
P粉191610580

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号