在Yii2中选择左连接失败

时间:2017-07-29 11:48:10

标签: php mysql yii yii2 left-join

当我关注this tutorial并尝试部分时,左连接失败。我不知道为什么,请告诉我解决。

控制器中的此代码:

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 个答案:

答案 0 :(得分: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);
      }

答案 1 :(得分: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);
    }