当前位置: 首页 > 知识库问答 >
问题:

QueryException SQLSTATE[42S22]:未找到列:1054

羊舌富
2023-03-14

我有查询异常SQLSTATE[42S22]:列未找到: 1054 Champ'3'在子句(SQL:选择内容名称to_id消息内连接用户=3其中to_id=1)

这是我的控制器:

公共函数显示(User$user){

    $users = DB::table('users')
        ->select('name','id')
        ->where('id','!=',auth()->user()->id)
        ->get();

    $messages = DB::table('message')
        ->join('users','users.id','=',$user->id)
        ->select('content','name','to_id')
        ->where('to_id','=',auth()->user()->id)
        ->get();


    return view('conversations/show',compact('users','user','messages'));
}

共有2个答案

龙玺
2023-03-14

您需要更正消息查询中的join子句。

$messages = DB::table('message')
        ->join('users', function($join) use($user) {
            $join->('users.id', '=', 'messages.user_id')
                ->where('users.id', '=', $user->id)
        })
        ->select('content','name','to_id')
        ->where('to_id','=',auth()->user()->id)
        ->get();
子车安和
2023-03-14

您需要基于外键联接表。比如:

->join('users', 'users.id', '=', 'message.user_id')

加入后,您需要在“选择”和“位置”中指定表。比如:

->select('message.content','users.name','messages.to_id')
->where('message.to_id', auth()->user()->id)

而不是:

->join('users', 'users.id','=', $user->id)

加入后请执行以下操作:

->where('users.id', $user->id)
 类似资料:
  • 我的代码:数据库中的值未更新,出现以下错误: (照明\数据库\查询异常(42S22)SQLSTATE[42S22]:找不到列: 1054未知列'用户名'在'where子句'(SQL:选择计数()作为聚合从其中=anikatabassum))和("SQLSTATE[42S22]:找不到列: 1054未知列'用户名'在'where子句'(SQL:选择计数()作为聚合从其中=anikatabassum)

  • 我使用的框架Laravel。 我有两个表(用户和成员)。当我想登录时,我会收到错误消息: SQLSTATE[42S22]:找不到列: 1054未知的列'user_email'in'where子句'(SQL:选择*fromwhere=?限制1)(绑定:数组(0= 表用户 表成员 迁移用户 移民成员 模型用户 模范会员 成员模型使用:使用照明\Auth\UserInterface; 控制器 auth.

  • 我是编程界的新手,我自己在学习laravel,我发现了这个错误:SQLSTATE[42S22]:Column not found:1054未知列'clientes.clientes\u id'在'where子句中(SQL:select*fromwhere=1和不为空)(视图:/shared/httpd/laravel_8_crud/resources/views/pedidos/index.bla

  • 我正在尝试使用PDO向MySQL插入一条记录,下面的代码中可以看到我的sql语句。 当执行此代码时,我会遇到以下错误消息; SQLState[42S22]:找不到列:1054“Field List”中的未知列“John” 这无疑是解决这个问题的一个简单方法,但我似乎看不出来,有人能给我指明正确的方向吗?

  • 问题内容: 我正在使用Laravel框架。 我有2个表(用户和成员)。当我想登录时,收到错误消息: SQLSTATE [42S22]:找不到列:1054’where子句’中的未知列’user_email’(SQL:select * from where =?limit 1)(绑定:数组(0 =>'test@hotmail.com‘,)) 表用户 表成员 迁移用户 移民会员 模型使用者 模范会员 成

  • 我正在制作一个我想登录和注册的应用程序,并且能够将csv文件导入数据库,注册和登录工作正常,但是当我想导入csv时,我遇到了这个问题: 错误luminate\Database\QueryException SQLSTATE[42S22]:未找到列:1054“where子句”中的未知列“classe”(SQL:select*fromwhere(=7和=7598)限制1)科目表 账户控制员