CDbCriteria biçimine dönüştürüyorum Hala CD2Criteria Yii 1.xx işlevinin tüm işlevselliğini çalışıyorum - Bir model içinde sorguları CDbCriteria biçimi kullanarak dönüştürmek istediğiniz oldukça karmaşık bir SQL sorgusu var (Bu daha karmaşık bir sorgu ile mümkün olup olmadığını. şunaBu sorguyu Yii
Benim ilk girişimi ..
$criteria = new CDbCriteria;
$criteria->select = array(
't.classroom_id, title',
'COALESCE(COUNT(DISTINCT r.redeemed_code_id),0) AS totalRewards',
'COALESCE(COUNT(DISTINCT ocm.user_id),0) AS totalStudents',
'COALESCE(SUM(r.points),0) AS totalPoints'
);
herkes aşağıdaki sorguyu kullanarak bu konuda gitmek için en iyi yol önerebilir? Herhangi bir tavsiye sayesinde önerilir ..
SELECT
t.classroom_id,
title,
COALESCE (r.classRewards, 0) AS totalRewards,
COALESCE (r.classPoints, 0) AS totalPoints,
COALESCE (COUNT(DISTINCT ocm.user_id), 0) AS totalStudents
FROM
organisation_classrooms t
LEFT JOIN (select crc.classroom_id,
COUNT(DISTINCT crc.redeemed_code_id) AS classRewards,
SUM(crc.points) as classPoints
from classroom_redeemed_codes crc
JOIN organisation_classrooms t
ON crc.classroom_id = t.classroom_id
AND t.organisation_id = 37383
where crc.inactive = 0
AND (crc.date_redeemed >= 1393286400
OR crc.date_redeemed = 0)
group by crc.classroom_id) r
ON t.classroom_id = r.classroom_id
LEFT OUTER JOIN organisation_classrooms_myusers ocm
ON t.classroom_id = ocm.classroom_id
WHERE
t.organisation_id = 37383
GROUP BY title
ORDER BY t.classroom_id ASC
LIMIT 10
Ben böyle karmaşık sorgular için CDbCriteria kullanmamak daha iyi olur. CDbCommandBuilder yerine – Gihan