调用store
actionIndex()
的当前模型
它将表格中的数据显示为Select * FROM store
如何编辑Scope
到此?还是有另一种方法可以做到这一点,而不使用Scope?
SELECT j.* FROM
(
(
SELECT *
FROM `make` AS v
JOIN `ads` AS a
ON (v.id=a.make_code)
GROUP BY v.make
)
UNION
(
SELECT *
FROM `store` AS d
JOIN `make` AS v
ON (v.id=d.make)
GROUP BY d.make
)
) AS j GROUP BY j.make
我试过这个,但收到错误
public function Scope(){
return array(
'_with'=>array(
'alias' => 'd',
'select'=>array('j.*
(
(
SELECT *
FROM `make` AS v
JOIN `ads` AS a
ON (v.id=a.make_code)
GROUP BY v.make
)
UNION
(
SELECT *
FROM `store` AS d
JOIN `make` AS v
ON (v.id=d.make)
GROUP BY d.make
)
) AS j'
),
'group'=>'j.make',
)
);
}
这是错误消息
CDbCommand failed to execute the SQL statement: SQLSTATE[42000]:
Syntax error or access violation: 1064 You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near
'(
(
SELECT *' at line 2. The SQL statement executed was: SELECT j.*
(
(
SELECT *
FROM `make` AS v
JOIN `ads` AS a
ON (v.id=a.make_code)
GROUP BY v.make
)
UNION
(
SELECT *
FROM `store` AS d
JOIN `make` AS v
ON (v.id=d.make)
GROUP BY d.make
)
) AS j FROM `store` d WHERE d.pending!="1" GROUP BY j.make sq
答案 0 :(得分:0)
问题是您没有设置from
。您也可以从from
中创建一个sql视图,然后使用它。它使您的代码更清晰。
public function Scope(){
return array(
'_with'=>array(
'alias' => 'd',
'select'=>array('j.*');
'from' => '(
(
SELECT *
FROM `make` AS v
JOIN `ads` AS a
ON (v.id=a.make_code)
GROUP BY v.make
)
UNION
(
SELECT *
FROM `store` AS d
JOIN `make` AS v
ON (v.id=d.make)
GROUP BY d.make
)
) AS j',
'group'=>'j.make',
)
);
}