当我遵循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);
    }


php - 在Yii2中选择左联接失败-LMLPHP

最佳答案

连接中表名的引用错误

您应该使用'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);
      }

08-08 05:04