Это подмножество более крупного запроса, который я разработал в phpmyadmin, но я немного растерялся и запутался в синтаксисе, заставляющем его работать в компоненте, который я создаю в Joomla.
Код, который работает в phpmyadmin:
drop table if exists tests_mod_ques;
create table tests_mod_ques as
select p.student_userid, q.question_mod, q.question_id, p.student_passedchk
from `tests_students` p
inner join `tests_questions` q on p.question_id = q.question_id
group by p.student_userid, q.question_mod, q.question_id, p.student_passedchk
;
Код, который выдает синтаксическую ошибку 1064:
$query = parent::getListQuery();
$query->dropTable('#__tests_mod_ques', 'true');
$query->createTable('#__tests_mod_ques AS
select (p.student_userid
, q.question_mod
, q.question_id
, p.student_passedchk)
');
$query->from('#__tests_students AS p');
$query->join('#__tests_questions AS q ON p.question_id = q.question_id');
$query->group('p.student_userid
, q.question_mod
, q.question_id
, p.student_passedchk
');
....
$db = $this->getDbo();
return $query;
Я протестировал только определение dropTable и даже при том, что он не выдал ошибкуон не удалял таблицу и не отображался в отладчике, поэтому я, вероятно, не использую это право: http://api.joomla.org/Joomla-Platform/Database/JDatabase.html#dropTable
Не могу найти ни одной ссылки для создания, кроме этой: http://api.joomla.org/Joomla-Platform/Database/JDatabase.html#getTableCreate
Также у меня появляется запрос INSERT…ON DUPLICATE KEY UPDATE
, к которому я тоже не знаю, как поступить.
Спасибо!
Редактировать
Я пытался удалить строки в качестве обходного пути, также не регистрируется.Опять проверил отладчик и запрос на удаление не появляется.
$query->delete('#__tests_mod_ques');
Это должно работать в соответствии с http://api.joomla.org/Joomla-Platform/Database/JDatabaseQuery.html#$delete
и http://docs.joomla.org/JDatabaseQuery::delete/1.6
Разочарование!У кого-нибудь есть идеи?
Спасибо!