2011-11-14 2 views
0

это мой запрос, где я получаю еженедельно Всего просмотры:Zend запрос для временной таблицы

select count(ms.test_public_id) as total_views, ms1.recent_views from test_stats ms 
join (select count(test_stats.test_public_id) as recent_views from test_stats 
where test_stats.test_public_id = '$tourid' 
and test_stats.updated_on > DATE_SUB(CURDATE(), INTERVAL 7 DAY)) ms1 
where ms.test_public_id ='$tourid' 

Я попытался реализовать в Зенде выход как этого

$cols = array ('count(ms.test_public_id) as total_views', 'ms1.recent_views', 'count(test_stats.test_public_id) as recent_views'); 
$select = $db ->select() 
->from ('test', $cols) 
->join ('user', 'user.user_id = test.user_id', array()) 
->join ('test_stats', 'test_stats.test_public_id =test.test_public_id', array()) 
->where ('test_stats.test_public_id = ?', '$testId') 
->where ('test_stats.updated_on > DATE_SUB(CURDATE(), INTERVAL 7 DAY)') 
->where ('ms.test_public_id = ?', '$testId') 
->group ('test_stats.test_public_id') 
->order ('title'); 
$result = $db->fetchAll ($select); 

Пожалуйста, поправьте меня, где я делаю неправильно ..........

ответ

0

->join ('user', 'user.user_id = test.user_id', array()); Почему пустой массив? и title является неопределенным в заказать Я думаю .... попробуйте echo $ select = .... чтобы увидеть, какой запрос выполнен и сравнить с тем, что вы хотите.

TRY

$cols = array ('count(ms.test_public_id) as total_views', 'ms1.recent_views', 'count(test_stats.test_public_id) as recent_views'); 
    echo $select = $db ->select() 
    ->from ('test', $cols) 
    ->join ('user', 'user.user_id = test.user_id', array()) 
    ->join ('test_stats', 'test_stats.test_public_id =test.test_public_id', array()) 
    ->where ('test_stats.test_public_id = ?', '$testId') 
    ->where ('test_stats.updated_on > DATE_SUB(CURDATE(), INTERVAL 7 DAY)') 
    ->where ('ms.test_public_id = ?', '$testId') 
    ->group ('test_stats.test_public_id') 
    ->order ('test.title'); 
    $result = $db->fetchAll ($select); 
+0

Пожалуйста, вы можете исправить это с предложенными изменениями – user1028072

+0

, когда я попытался это я получил ошибку неопределенного ms.test_public_id – user1028072

+0

изменение -> где (? Ms.test_public_id = ', '$ TestID') 'ms' вам правильное имя таблицы ... Я только угадываю -> где ('test_stats.test_public_id =?', '$ testId') –

Смежные вопросы