2012-11-01 38 views
1

我想从一个表(党),以及从另一个(客户)的一些列使用所有列。这里有什么问题? SQL查询给我一个错误1146

好吧,这里是我的代码

public function getParty($data = array()) { 

    $sql = "SELECT party.* , customer.customer_id AS customerID, customer.firstname AS customerFN, customer.lastname AS customerLN, customer.email AS customerEMAIL, customer.ip AS cutomerIP 
    FROM `" . DB_PREFIX . "party` 
    JOIN `" . DB_PREFIX . "cutomer` 
    ON party.cutomer_id = customer.customer_id 
    WHERE status=3"; 

    $sort_data = array(


     'date_added', 
     'order_id', 
     'customer_id', 
     'customerFN', 
     'customerLN', 
     'customerEMAIL', 
     'customerIP', 
     'description', 
     'status', 
     'amount' 


    ); 

    if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 
     $sql .= " ORDER BY " . $data['sort']; 
    } else { 
     $sql .= " ORDER BY date_added"; 
    } 

    if (isset($data['order']) && ($data['order'] == 'DESC')) { 
     $sql .= " DESC"; 
    } else { 
     $sql .= " ASC"; 
    } 

    if (isset($data['start']) || isset($data['limit'])) { 
     if ($data['start'] < 0) { 
      $data['start'] = 0; 
     }   

     if ($data['limit'] < 1) { 
      $data['limit'] = 20; 
     } 

     $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 
    } 

    $query = $this->db->query($sql); 

    return $query->rows; 
} 

,这里是错误

Notice: Error: Table 'XXX.cutomer' doesn't exist 
Error No: 1146 
SELECT party.* , customer.customer_id AS customerID, customer.firstname AS customerFN, customer.lastname AS customerLN, customer.email AS customerEMAIL, customer.ip AS cutomerIP FROM `party` JOIN `cutomer` ON party.cutomer_id = customer.customer_id WHERE status=3 ORDER BY date_added ASC LIMIT 0,10 in /srv/www/htdocs/XXX/system/database/mysql.php on line 49 

也许我错了地方,但没有看到它

问候 斯托扬诺夫

+0

哪里是你的表'XXX'? –

+0

有人会认为消息“表...不存在”是一个强烈的线索,你错误地键入了一个表名? –

回答

1
JOIN `" . DB_PREFIX . "cutomer` 

应该是

JOIN `" . DB_PREFIX . "customer` 

也...

ON party.cutomer_id = customer.customer_id 

应该

ON party.customer_id = customer.customer_id 

我会搜索cutomer的所有实例并将其替换为customer

+0

谢谢,真是愚蠢无知的错误。一切正常:) –

0

我觉得应该是

ON party.customer_id = customer.customer_id 

,而不是

ON party.cutomer_id = customer.customer_id 
0

您的SQL语句改成这样:

$sql = "SELECT party.* , customer.customer_id AS customerID, customer.firstname AS customerFN, customer.lastname AS customerLN, customer.email AS customerEMAIL, customer.ip AS customerIP 
FROM `" . DB_PREFIX . "party` 
JOIN `" . DB_PREFIX . "customer` 
ON party.customer_id = customer.customer_id 
WHERE status=3"; 
0

请从

JOIN `" . DB_PREFIX . "cutomer` 
改变

JOIN `" . DB_PREFIX . "customer` 

例:

FROM `" . DB_PREFIX . "party` 
    JOIN `" . DB_PREFIX . "customer` 
    ON party.cutomer_id = customer.customer_id 
    WHERE status=3";