2017-07-29 56 views
0

当我跟随this tutorial时,我尝试了部分左连接失败。我不知道为什么,请告诉我解决。在Yii2中选择左加入失败

这段代码在控制器:

public function actionGetSka($kodeSka) 
    { 
     $query = new Query; 
     $query->select(['ska.no_ska','ska.tgl_ska','ska.kode_anak_asuh','anak_asuh.kode_calon','calon.nama_calon','ska.kode_calon_keluarga_asuh','calon_keluarga_asuh.nama','calon_keluarga_asuh.jenis_kelamin','calon_keluarga_asuh.pekerjaan','calon_keluarga_asuh.alamat'])  
       ->from('ska') 
       ->join('LEFT JOIN', 'anak_asuh', 
                'anak_asuh'.'kode_anak_asuh' = 'ska'.'kode_anak_asuh')      
       ->join('LEFT JOIN', 'calon_keluarga_asuh', 
                'calon_keluarga_asuh'.'kode_calon_keluarga_asuh' = 'ska'.'kode_calon_keluarga_asuh') 
       ->join('LEFT JOIN', 'calon', 
                'calon'.'kode_calon' = 'anak_asuh'.'kode_calon') 
       ->limit(2); 
     $command = $query->createCommand(); 
     $data = $command->queryAll(); 
     echo Json::encode($kodeSka); 
    } 

enter image description here

回答

2

错误报价周围表名加入

你应该使用'anak_asuh.kode_anak_asuh' = 'ska.kode_anak_asuh'代替

'anak_asuh'.'kode_anak_asuh' = 'ska'.'kode_anak_asuh'

public function actionGetSka($kodeSka) 
     { 
      $query = new Query; 
      $query->select(['ska.no_ska' 
      ,'ska.tgl_ska' 
      ,'ska.kode_anak_asuh' 
      ,'anak_asuh.kode_calon' 
      ,'calon.nama_calon' 
      ,'ska.kode_calon_keluarga_asuh' 
      ,'calon_keluarga_asuh.nama' 
      ,'calon_keluarga_asuh.jenis_kelamin' 
      ,'calon_keluarga_asuh.pekerjaan' 
      ,'calon_keluarga_asuh.alamat']) 
       ->from('ska') 
       ->join('LEFT JOIN', 'anak_asuh', 'anak_asuh.kode_anak_asuh' = 'ska.kode_anak_asuh')  
       ->join('LEFT JOIN', 'calon_keluarga_asuh', 'calon_keluarga_asuh.kode_calon_keluarga_asuh' = 'ska.kode_calon_keluarga_asuh') 
       ->join('LEFT JOIN', 'calon', 'calon.kode_calon' = 'anak_asuh.kode_calon') 
       ->limit(2); 
      $command = $query->createCommand(); 
      $data = $command->queryAll(); 
      echo Json::encode($kodeSka); 
     } 
+0

奇怪..我已经张贴在别人面前,并与错误原因的正确解释,你,你标记正确的解决方案为接受他人没有任何解释和pratically代码复制对于我..如果我的人是你可以至少告诉我.. – scaisEdge

+0

兄弟你和我的回答是不同的,它是谁接受谁回答谁的问题,仍然你投了我这个和其他答案:) –

+0

我没有看到明显的区别。在答案中......一部分的外观.. – scaisEdge

1

试试这个:

public function actionGetSka($kodeSka) 
    { 
     $query = new Query; 
     $query->select(['ska.no_ska','ska.tgl_ska','ska.kode_anak_asuh','anak_asuh.kode_calon','calon.nama_calon','ska.kode_calon_keluarga_asuh','calon_keluarga_asuh.nama','calon_keluarga_asuh.jenis_kelamin','calon_keluarga_asuh.pekerjaan','calon_keluarga_asuh.alamat']) 
       ->from('ska') 
       ->leftJoin('anak_asuh','anak_asuh.kode_anak_asuh = ska.kode_anak_asuh') 
       ->leftJoin('calon_keluarga_asuh','calon_keluarga_asuh.kode_calon_keluarga_asuh = ska.kode_calon_keluarga_asuh') 
       ->leftJoin('calon','calon.kode_calon = anak_asuh.kode_calon') 
       ->limit(2); 
     $command = $query->createCommand(); 
     $data = $command->queryAll(); 
     echo Json::encode($kodeSka); 
    }