相关疑难解决方法(0)

Laravel Fluent Query Builder加入子查询

好的经过几个小时的研究并仍在使用DB :: select我不得不问这个问题.因为我即将把我的电脑拉下来;).

我想得到用户的最后一个输入(基于时间戳).我可以使用原始sql执行此操作

SELECT  c.*, p.*
FROM    users c INNER JOIN
(
  SELECT  user_id,
          MAX(created_at) MaxDate
  FROM    `catch-text`
  GROUP BY user_id
 ) MaxDates ON c.id = MaxDates.user_id INNER JOIN
    `catch-text` p ON   MaxDates.user_id = p.user_id
     AND MaxDates.MaxDate = p.created_at
Run Code Online (Sandbox Code Playgroud)

我从另一个帖子此查询这里的计算器.

我已尝试使用Laravel中的流畅查询构建器完成所有操作,但没有成功.

我知道手册说你可以这样做:

DB::table('users')
    ->join('contacts', function($join)
    {
        $join->on('users.id', '=', 'contacts.user_id')->orOn(...);
    })
    ->get();
Run Code Online (Sandbox Code Playgroud)

但这没有多大帮助,因为我不知道如何在那里使用子查询?谁可以点亮我的一天?

laravel laravel-4

65
推荐指数
5
解决办法
7万
查看次数

Laravel:一般错误:1615准备好的陈述需要重新准备

我在宅基地虚拟机(流浪汉)中使用最新版本的laravel(5.1).

我将我的项目连接到本地mariaDB服务器,其中我有一些表和2个db-view.

由于我只在db-view表上做了一些select,所以我随机收到了这个错误:

一般错误:1615准备好的陈述需要重新准备

从今天起,我只在db视图上选择时才会出现此错误.如果我打开我的phpMyAdmin并进行相同的选择它会返回正确的结果.

我试图打开php artisan tinker并选择db-view的一条记录,但它返回相同的错误:

// Select one user from user table
>>> $user = new App\User
=> <App\User #000000006dc32a890000000129f667d2> {}
>>> $user = App\User::find(1);
=> <App\User #000000006dc32a9e0000000129f667d2> {
       id: 1,
       name: "Luca",
       email: "luca@email.it",
       customerId: 1,
       created_at: "2015-08-06 04:17:57",
       updated_at: "2015-08-11 12:39:01"
   }
>>> 
// Select one source from Source db-view
>>> $source = new App\Source
=> <App\Source #000000006dc32a820000000129f667d2> {}
>>> $source = App\Source::find(1);
Illuminate\Database\QueryException with message 'SQLSTATE[HY000]: General error: 1615 Prepared statement needs …
Run Code Online (Sandbox Code Playgroud)

php database mariadb laravel eloquent

16
推荐指数
2
解决办法
2万
查看次数

标签 统计

laravel ×2

database ×1

eloquent ×1

laravel-4 ×1

mariadb ×1

php ×1