Php Laravel日期比较不适用于列中创建的\u
我编写了一个查询,用于检查会话中的用户删除会话后写入会话的消息。我的问题是:Php Laravel日期比较不适用于列中创建的\u,php,laravel,query-builder,Php,Laravel,Query Builder,我编写了一个查询,用于检查会话中的用户删除会话后写入会话的消息。我的问题是: $messages = DB::table('conversations') ->where('conversations.id', $conversation->id) ->join('messages', 'messages.conversation_id', '=', 'conversations.id')
$messages = DB::table('conversations')
->where('conversations.id', $conversation->id)
->join('messages', 'messages.conversation_id', '=', 'conversations.id')
->join('deleted_conversations', 'deleted_conversations.conversation_id', '=', 'conversations.id')
->where('messages.created_at', '>=', 'deleted_conversations.created_at')
->orderBy('messages.created_at', 'desc')
->select('messages.*')
->get()
->all();
但是每次我尝试使用
where('messages.created_at,运行此查询时,如果要在值为另一列的位置添加where
子句,则需要使用:
您能提供示例数据来说明问题吗?您是日期列文本还是实际日期?我将编辑问题。日期列是使用$table->timestamps()
创建的。
Schema::create('conversations', function (Blueprint $table) {
$table->id();
$table->integer('sender_id');
$table->integer('receiver_id');
$table->enum('status', ['read', 'unread']);
$table->timestamps();
});
Schema::create('messages', function (Blueprint $table) {
$table->id();
$table->integer('conversation_id');
$table->integer('sender_id');
$table->string('message');
$table->timestamps();
});
Schema::create('deleted_conversations', function (Blueprint $table) {
$table->id();
$table->integer('conversation_id');
$table->integer('user_id');
$table->timestamps();
});
->whereColumn('messages.created_at', '>=', 'deleted_conversations.created_at')