【问题标题】:Creating a subquery using laravel eloquent使用 laravel eloquent 创建子查询
【发布时间】:2025-11-30 15:30:01
【问题描述】:

我的原始查询运行良好,但在将其转换为 Laravel eloquent 后它无法运行。

    SELECT
        key_vals.`key`,
        key_vals.`value`
    FROM
        key_vals
    WHERE TIMESTAMPDIFF(MINUTE,
            key_vals.`last_store_time`,
            now()) < (SELECT ttl from ttls) 

【问题讨论】:

标签: php mysql laravel laravel-5 eloquent


【解决方案1】:

您可以进行子查询并将结果传递给外部查询:

$ttl = Ttl::select('ttl')->first();
$results = KeyValue::select('key', 'value')
                   ->where(\DB::raw('TIMESTAMPDIFF(MINUTE, key_vals.`last_store_time`, now())'), '<', $ttl->ttl);

虽然内部查询 Ttl::select('ttl') 应该返回一个单元格值,但我只是按照您在示例中提到的那样尝试这样做

【讨论】: