2013-03-13 3 views
1

Я, наконец, получил свои запросы, готовые к вставке в код, но теперь я получаю сообщение об ошибке при запуске всего запроса. Я считаю, что это связано с функцией drop table. Я первоначально имел их рядный, а затем прочитать, что я должен удалить его и добавить в начале запроса следующим образом:mysql-php, ошибка при создании временной таблицы

$query = $this->db->query("DROP TABLE IF EXISTS resultx;"); 
    $query = $this->db->query("DROP TABLE IF EXISTS resulty;"); 

$query = $this->db->query(" 
CREATE TEMPORARY TABLE resultx AS 
select *, CONCAT(Credit,'_',OrderStat) as consol from (.......... 

Я создаю две временные таблицы, а затем объединить их в последнем запросе. Я не уверен, как вернуть вторую временную таблицу DROP в полный запрос или если это даже правильный путь. ошибка, что я получаю:

A Database Error Occurred 
Error Number: 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 'CREATE TEMPORARY TABLE resulty AS select packetDeet,Sales,SaleDate, UserID,Lead' at line 15 

Запрос:

CREATE TEMPORARY TABLE resultx AS 
    select 
     *, 
     CONCAT(Credit,'_',OrderStat) as consol 
    FROM 
     (select 
       packetDetailsId, GROUP_CONCAT(Credit) AS Credit, 
       GROUP_CONCAT(AccountNum) AS AccountNum, 
       GROUP_CONCAT(OrderStat) AS OrderStat 
      FROM 
      (SELECT 
        pd_extrafields.packetDetailsId, 
        CASE WHEN 
         pd_extrafields.ex_title LIKE ('%Credit%') 
         THEN pd_extrafields.ex_value 
         ELSE NULL 
        END as Credit, 
        CASE WHEN 
         pd_extrafields.ex_title LIKE ('%Account%') 
         THEN pd_extrafields.ex_value 
         ELSE NULL 
        END as AccountNum, 
       CASE WHEN 
         pd_extrafields.ex_title LIKE ('%Existing%') 
         THEN pd_extrafields.ex_value 
         ELSE NULL 
       END as OrderStat 
       FROM pd_extrafields 
      ) AS myalias 
      GROUP BY packetDetailsId 
     )as TempTab; 
CREATE TEMPORARY TABLE resulty AS select packetDeet,Sales,SaleDate, ......... 

Пожалуйста, дайте мне знать, если это имеет смысл, или мне нужно обновить вопрос с дополнительной информацией.

+0

Проверьте наличие невидимых символов, таких как спецификация. – Barmar

+0

Благодарим вас за очистку UnholyRanger и за совет Бармара, я рассмотрю это предложение. – alex

ответ

2

Если вы пытаетесь выполнить оба запроса в одном вызове $this->db->query(), проблема в том, что ваша библиотека базы данных не разрешает несколько запросов.

Чтобы узнать, если это проблема, вы должны разделить их на два отдельных запроса.

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