Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用laravel中的查询生成器连接3个表_Mysql_Laravel_Laravel 5.5_Laravel 5.6 - Fatal编程技术网

Mysql 使用laravel中的查询生成器连接3个表

Mysql 使用laravel中的查询生成器连接3个表,mysql,laravel,laravel-5.5,laravel-5.6,Mysql,Laravel,Laravel 5.5,Laravel 5.6,我有一个3表问题,注册,ssi_轨迹,我需要通过对应其他两个表从注册表中获取详细信息 我需要得到注册的详细信息 问题。问题日程=0,ssi\U跟踪。跟踪第一个\U状态 我已经编写了查询,但它说在这里找不到该列。这是我的查询 $register = DB::table('registrations') ->join('questions', 'registrations.registration_id', '=', 'questions.question_id')

我有一个3表问题,注册,ssi_轨迹,我需要通过对应其他两个表从注册表中获取详细信息

我需要得到注册的详细信息 问题。问题日程=0,ssi\U跟踪。跟踪第一个\U状态

我已经编写了查询,但它说在这里找不到该列。这是我的查询

 $register = DB::table('registrations')
            ->join('questions', 'registrations.registration_id', '=', 'questions.question_id')
             ->join('ssi_tracks','registrations.registration_id','=','ssi_tracks.registration_id')
             ->select('address', 'model', 'chassis', 'delivery_date','ssi_tracks.track_first_status')
            ->where([["questions.question_schedul", "=", $dropselected] and ['ssi_tracks.track_first_status',0]])
             ->get();
请尝试以下查询:

$register = DB::table('registrations')
             ->leftJoin('questions', 'registrations.registration_id', '=', 'questions.question_id')
             ->leftJoin('ssi_tracks','registrations.registration_id','=','ssi_tracks.registration_id')
             ->select('registrations.address', 'registrations.model', 'registrations.chassis', 'registrations.delivery_date','ssi_tracks.track_first_status')
             ->where(['questions.question_schedul'=>$dropselected,'ssi_tracks.track_first_status'=>0])
             ->get();
试试这个:

$register = DB::table('registrations as R')
             ->select('R.address', 'R.model', 'R.chassis', 'R.delivery_date','S.track_first_status')
             ->join('questions as Q', 'R.registration_id', '=', 'Q.question_id')
             ->join('ssi_tracks as S','R.registration_id','=','S.registration_id')
             ->where('Q.question_schedul', '=', $dropselected)
             ->where('S.track_first_status', '=', 0)
             ->get();
确保您已使用问题表中的右列匹配注册id:

->join('questions as Q', 'R.registration_id', '=', 'Q.question_id')

它说在查询中找不到哪个列名?请共享名称。未找到列:“where子句”@JinandraGuptai中的1054未知列“0”需要按问题筛选。问题\u schedul=0,ssi\u跟踪。跟踪\u first\u status=0,如@JinandraGuptai所回答的。请试着让我知道这对你是否有帮助。谢谢,我会检查它只返回1个结果,我有4个左右的问题_schedul=1,3个左右的跟踪_first_status=0,但它只在where子句或and中重新运行一个@Jinandra gupta或条件?我的意思是,这个查询只为那些有question_schedul=1和track_first_status=0的记录提取结果。如果您想要question_schedul=1或track_first_status=0,它应该提取结果,然后尝试->where'Q.question_schedul'、'='、$dropselected->或where'S.track_first__status'、'=',0我一次需要两个状态,而不是像您在第2条评论中所说的那样,我需要和条件@Jinandra Gupta,请按您的要求回答更新后的查询。请尝试。它只返回1个结果,我有问题_schedul=1约4,跟踪_first_status=0约3,但它只重新运行一个@SaurabhMistry@Abhijith,确保您在$dropselected[link]中获得了正确的值。您可以在google drive@Saurabh中检查表的链接Mistry@Abhijith ,我了解了为什么您要记录一条1…..在照片中,在ssi_轨迹中只有3条记录,其中轨迹_first_status=0,假设您选择注册id=3,注册id=3,则问题表中只有一条记录的问题_id=3…..所以您只能获得一条记录