php - 错误 : Not unique table/alias: 'companies' Database (error): 1066

标签 php mysql database join e-commerce

我正在制作一个电子商务网站,我有一个管理面板来控制网站。

从管理面板激活类别和产品过滤器时,此 sql 查询:

SELECT COUNT(DISTINCT products.product_id) AS products,
       companies.company AS range_name,
       UPPER(SUBSTRING(companies.company, 1, 1)) AS `index`,
       companies.company_id AS range_id,
       'S' AS field_type
FROM products
LEFT JOIN companies ON companies.company_id = products.company_id
INNER JOIN products_categories ON products_categories.product_id = products.product_id
LEFT JOIN categories ON categories.category_id = products_categories.category_id
LEFT JOIN companies AS companies ON companies.company_id = products.company_id
WHERE products.status IN ('A')
  AND products_categories.category_id IN (261)
  AND (categories.usergroup_ids = ''
       OR FIND_IN_SET(0, categories.usergroup_ids)
       OR FIND_IN_SET(1, categories.usergroup_ids))
  AND (products.usergroup_ids = ''
       OR FIND_IN_SET(0, products.usergroup_ids)
       OR FIND_IN_SET(1, products.usergroup_ids))
  AND categories.status IN ('A',
                            'H')
  AND products.status IN ('A')
  AND (companies.status = 'A')
GROUP BY products.company_id
ORDER BY companies.company

崩溃并向我显示错误:

Not unique table/alias: 'companies' Database (error): 1066

谁能帮忙找出这个查询中的错误?

提前致谢:)

最佳答案

您两次加入companies 表。这很好,但您必须使用不同的别名。

第一个连接没有别名所以被称为相同的; 公司。第二个是别名,但又使用了相同的名称 companies,这会引起冲突。

尝试使用不同的名称作为别名的良好做法,例如 companies1companies2(或者更好,任何其他更有意义的名称),当然相应地更新您在选择、连接、位置、分组和顺序中的所有表引用。

关于php - 错误 : Not unique table/alias: 'companies' Database (error): 1066,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31362718/

相关文章:

php - 查询以在类别中链接时显示所有博客文章

php - PHP 中明天的日出时间。如何?

php - MySQL如何防止主键重复

php - REST 调用返回空白页

MySQL错误: You have an error in your SQL syntax check the manual that corresponds to your MySQL server version for the right syntax to use

php - 在 MySql 数据库中存储表情符号。显示???在 phpmyadmin 中

php - SUM() 在 MySQL : SUM() with DISTINCT 中不起作用

php - [url] 的页面在 chrome 中运行了来自 [url] 的不安全内容

mysql - 为另一列中的每个值选择不同的列,然后分组

javascript - HTML/PHP 表单,完成后显示消息,然后重定向