不唯一的表/别名codeigniter

时间:2013-05-02 08:28:20

标签: mysql

我收到错误ERROR 1066(42000):不唯一的表/别名:'order_has_artikelgroup'我无法弄清楚它有什么问题。

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 个答案:

答案 0 :(得分: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` 

(如果需要,也可以在select子句中使用oha和oha2)

或更改您的联接(取决于查询的逻辑)

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