2013-05-02 46 views
0

我得到錯誤錯誤1066(42000):不是唯一的表/別名:'order_has_artikelgroup'我無法弄清楚它有什麼問題。不唯一的表/別名codeigniter

SELECT 
     `artikel`.`foto_naam`, 
     `fotografer`.`id`, 
     `fotografer`.`name_fotografer`, 
     `customer`.`first_name`, 
     `customer`.`last_name`, 
     `fotografer`.`domain_name`, 
     `fotografer`.`email`, 
     `order`.`invoice_no`, 
     `order`.`order_cost`, 
     `order`.`total_cost`, 
     `order`.`invoice_date`, 
     `order`.`payment`, 
     `order`.`status` 
    FROM 
     `artikel_group` 
     INNER JOIN `artikel` ON `artikel_group`.`id` = `artikel`.`artikelgroup_id` 
     INNER JOIN `fotografer` ON `artikel_group`.`fotografer_id` = `fotografer`.`id` 
     INNER JOIN `order_has_artikelgroup` ON `order_has_artikelgroup`.`order_id` = `order`.`id` 
     INNER JOIN `order_has_artikelgroup` ON `order_has_artikelgroup`.`artikelgroup_id` = `artikel_group`.`id` 
     INNER JOIN `customer` ON `order`.`customer_id` = `customer`.`id` 

回答

1

你有兩次聯接上表

order_has_artikelgroup

INNER JOIN `order_has_artikelgroup` ON `order_has_artikelgroup`.`order_id` = `order`.`id` 
INNER JOIN `order_has_artikelgroup` ON `order_has_artikelgroup`.`artikelgroup_id` = `artikel_group`.`id` 

但查詢必須是唯一的每個元素。

所以您應該添加一個別名

INNER JOIN `order_has_artikelgroup` oha ON oha.`order_id` = `order`.`id` 
INNER JOIN `order_has_artikelgroup` oha2 ON oha2 .`artikelgroup_id` = `artikel_group`.`id` 

(並用OHA和oha2在SELECT子句也如果需要的話)

或更改您的加入(視關於查詢的邏輯)

INNER JOIN `order_has_artikelgroup` 
    ON `order_has_artikelgroup`.`order_id` = `order`.`id` and 
     `order_has_artikel_group`.`artikelgroup_id` = `artikel_group`.`id` 
相關問題