0

我有以下查询

select stock_data.symbol, open, high, low, close, oi from stock_data 
left join fo_data on fo_data.data_date = stock_data.data_date 
where stock_data.symbol='SYMBOL'

符号是两个表中的同一列。stock_data 包含大约 9 列,fo_data 包含大约 70 列。

上面的查询在 phpmyadmin 中正常工作,但在 laravel 中不能正常工作,也尝试过流利的查询生成器。

编辑

$results = DB::table('stock_data')
        ->left_join('fo_data', 'stock_data.data_date', '=', 'fo_data.data_date')
        ->where('stock_data.symbol', '=', $symbol)
        ->where('stock_data.data_date', '>=', DB::raw("DATE_SUB('{$data_till}', INTERVAL {$months} MONTH)"))
        ->order_by('stock_data.data_date', 'asc')
        ->get();

如果我将此代码注释掉,其他代码将完美运行,但如果此代码存在,则返回的页面为空白(不是 404)

编辑

我增加了内存限制,现在它正在显示结果。我的查询非常错误,它返回了超过 5000000 行,所以这一定是问题所在。

4

1 回答 1

0

您应该使用DB::query生成器发出不适合的复杂任意查询。

您还可以使用DB::connection()->pdo访问底层 PDO 对象并从中手动尝试。

看到这个: http: //laravel.com/docs/database/raw

此外,尝试将您的标识符放在反引号之间。前任:

select `id` from `users`

这是因为您可能遇到了一些数据库的保留字。PhpMyAdmin 可能会为您执行此操作,这就是为什么您没有收到错误的原因。只是一个理论。

于 2013-02-27T17:04:41.733 回答