的MySQL-PHP,上创建临时表

问题描述:

错误,我终于得到了我的查询准备插入代码,但运行整个查询的时候,现在我得到一个错误。我相信它与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

检查不可见的字符像BOM。 – Barmar 2013-03-13 20:16:25

+0

感谢您清理UnholyRanger和Barmar的建议,我会研究这个建议。 – alex 2013-03-13 20:41:26

如果你想在一个调用执行到$this->db->query()两个查询的问题可能是你的数据库库不允许多个查询。

,看看是否有问题,你应该在两个单独的查询拆分起来。