当我遵循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);
}
最佳答案
连接中表名的引用错误
您应该使用'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);
}