0

我收到错误 ERROR 1066 (42000): Not unique table/alias: '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`
4

1 回答 1

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`
于 2013-05-02T08:30:45.967 回答