【问题标题】:Use a complex whereIn with Laravel's query builder在 Laravel 的查询构建器中使用复杂的 whereIn
【发布时间】:2019-12-25 03:45:56
【问题描述】:

我们有一个独立运行的 SQL 查询。

SELECT id FROM `tblinvoices` WHERE `id` IN ( 
    SELECT invoiceid FROM `tblinvoiceitems` WHERE `type` = 'Addon' AND `relid` = 1479 AND `userid` = 9554
) AND `userid` = 9554 AND `status` = 'Unpaid'

我试图深入研究并找到一个很好的查询构建器格式,它可以与这些子选择一起使用,但不断得到意想不到的结果。这是我构建的:

$db = Capsule::table('tblinvoices')->select('id')->where('userid', 9554)->where('status', 'Unpaid')->whereIn('id', function($query)
{
    $query->select('invoiceid')->from('tblinvoiceitems')->where('type', 'Addon')->where('relid', 1479)->where('userid', 9554);
});

我似乎误解了 laravel 的查询是如何工作的。

【问题讨论】:

    标签: mysql laravel laravel-query-builder


    【解决方案1】:

    我很愚蠢,我忘记了查询末尾的get();

    $db = Capsule::table('tblinvoices')->select('id')->where('userid', 9554)->where('status', 'Unpaid')->whereIn('id', function($query)
        {
            $query->select('invoiceid')->from('tblinvoiceitems')->where('type', 'Addon')->where('relid', 1479)->where('userid', 9554);
        })->get();
    

    【讨论】:

    • 哈哈,是的,我是个白痴。目前它并没有让我将答案标记为已解决,但对于那些从谷歌偶然发现的人来说,上面答案中的查询有效。
    猜你喜欢
    • 2019-01-18
    • 2017-04-13
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 2013-02-23
    • 2015-12-21
    相关资源
    最近更新 更多