yii2:将查询联合放在第一个查询的最后一个对象上
yii2: put the query union on the last object of first query
我在 yii2 上有脚本:
$query = HrKaryawan::find()
->where(['hr_karyawan.outlet_id' => $params['outlet_id']]);
$subquery = (new \yii\db\Query())
->from('hr_karyawan')
->where(['=', 'id',1]);
$query->union($subquery, true);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => array('pageSize' => 10),
]);
结果是子查询总是在第 1 页第 11 行、第 2 页第 21 行中的每一页的最后,...
我只想把它放在最后一行和最后一页。谁能帮帮我?
会显示11,因为第一个查询有限制,后面会附加子查询
(SELECT * FROM `hr_karyawan` LIMIT 10) UNION ALL ( SELECT * FROM `hr_karyawan` WHERE `id` = 1);
解决方案可能是使用包装器查询:
$wrapperQuery = new Query();
$wrapperQuery->from($query);
你的代码看起来像这样:
$query = HrKaryawan::find()
->where(['hr_karyawan.outlet_id' => $params['outlet_id']]);
$subquery = (new \yii\db\Query())
->from('hr_karyawan')
->where(['=', 'id',1]);
$query->union($subquery, true);
$wrapperQuery = new Query();
$wrapperQuery->from($query);
$dataProvider = new ActiveDataProvider([
'query' => $wrapperQuery,
'pagination' => array('pageSize' => 10),
]);
我在 yii2 上有脚本:
$query = HrKaryawan::find()
->where(['hr_karyawan.outlet_id' => $params['outlet_id']]);
$subquery = (new \yii\db\Query())
->from('hr_karyawan')
->where(['=', 'id',1]);
$query->union($subquery, true);
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => array('pageSize' => 10),
]);
结果是子查询总是在第 1 页第 11 行、第 2 页第 21 行中的每一页的最后,...
我只想把它放在最后一行和最后一页。谁能帮帮我?
会显示11,因为第一个查询有限制,后面会附加子查询
(SELECT * FROM `hr_karyawan` LIMIT 10) UNION ALL ( SELECT * FROM `hr_karyawan` WHERE `id` = 1);
解决方案可能是使用包装器查询:
$wrapperQuery = new Query();
$wrapperQuery->from($query);
你的代码看起来像这样:
$query = HrKaryawan::find()
->where(['hr_karyawan.outlet_id' => $params['outlet_id']]);
$subquery = (new \yii\db\Query())
->from('hr_karyawan')
->where(['=', 'id',1]);
$query->union($subquery, true);
$wrapperQuery = new Query();
$wrapperQuery->from($query);
$dataProvider = new ActiveDataProvider([
'query' => $wrapperQuery,
'pagination' => array('pageSize' => 10),
]);