Я использую Yii 1.1.16 и задаюсь вопросом, как бы модель Union 2 использовать область по умолчанию?
model 1 = abc
model 2 = abc2
В основном я хочу сделать простой союз
SELECT * FROM `abc`
UNION ALL
SELECT * FROM `abc2`
Havent действительно используется по умолчанию, поэтому он является новым для концепции. Обе таблицы имеют одинаковые номера столбцов и столбцов.
Я попробовал это, но не смог.
в моей модели abc
public function defaultScope() {
return array(
'alias' => 't2',
'select'=>array('t.*, t2.*'),
'union'=>array('SELECT * FROM `abc2`')
);
}
UPDATE:
Только что реализованный http://www.yiiframework.com/doc/api/1.1/CDbCriteria
, для CDbCriteria
нет NO union
.
public function defaultScope() {
return array(
//'alias' => 't',
'select'=>array('*'),
'join'=>'UNION ALL SELECT * FROM `abc2`'
);
}
код выше дает мне ошибку
CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't.make_code' in 'where clause'. The SQL statement executed was: SELECT `t`.`class_code`, `t`.`make_code`, `t`.`model_code` FROM `abc` `t` UNION ALL SELECT * FROM `abc2` WHERE `t`.`make_code`=:yp0 LIMIT 1. Bound with :yp0='11'
в обеих таблицах, у меня есть столбец make_code
Мне нужен запрос, чтобы он выглядел как
SELECT * FROM
(
SELECT * FROM `abc`
UNION ALL
SELECT * FROM `abc2`
) AS t
как это сделать?