Php 我如何修复显示每个产品四次而不是一次的查询?

Php 我如何修复显示每个产品四次而不是一次的查询?,php,mysql,sql,Php,Mysql,Sql,我试图从mySQL中导出所有的产品和一些关于它们的信息,所以我写了下面的查询 SELECT * FROM products JOIN descriptions ON products.product_id = descriptions.product_id JOIN category_descriptions ON categories.category_id = descriptions.category_id 出于某种原因,它每种产品输出四次。有人能帮我找出原因吗 更新:cscart\u产

我试图从mySQL中导出所有的产品和一些关于它们的信息,所以我写了下面的查询

SELECT * FROM products
JOIN descriptions
ON products.product_id = descriptions.product_id
JOIN category_descriptions
ON categories.category_id = descriptions.category_id
出于某种原因,它每种产品输出四次。有人能帮我找出原因吗


更新:cscart\u产品中只有122种产品。此查询后的结果为488。

选择不同的解决方案:

选择不同的解决方案:

尝试左加入。

尝试左连接。

一个产品有多个描述或类别,或者一个类别有多个描述,或者数据库中有重复的条目。

一个产品有多个描述或类别,或者一个类别有多个描述,或者数据库中存在重复条目。

添加
按cscart\u产品分组。产品id

您的查询:

SELECT * FROM cscart_products
JOIN cscart_product_descriptions
ON cscart_products.product_id = cscart_product_descriptions.product_id
JOIN cscart_products_categories
ON cscart_products.product_id = cscart_products_categories.product_id
JOIN cscart_category_descriptions
ON cscart_products_categories.category_id = cscart_category_descriptions.category_id
GROUP BY cscart_products.product_id

按cscart\u产品添加
分组。产品\u id

您的查询:

SELECT * FROM cscart_products
JOIN cscart_product_descriptions
ON cscart_products.product_id = cscart_product_descriptions.product_id
JOIN cscart_products_categories
ON cscart_products.product_id = cscart_products_categories.product_id
JOIN cscart_category_descriptions
ON cscart_products_categories.category_id = cscart_category_descriptions.category_id
GROUP BY cscart_products.product_id
有人能帮我找出原因吗

这里有个线索。使用的通配符用于显示所有列/字段。查询中使用了四个表。现在我们无法确定任何事情,因为数据库模式尚未发布

有人能帮我找出原因吗


这里有个线索。使用的通配符用于显示所有列/字段。查询中使用了四个表。现在我们无法确定任何事情,因为数据库模式尚未发布。

您可以发布您的数据库模式吗?您可以发布您的数据库模式吗?我想这是真的。我可以将结果限制为显示4种相同产品中的1种吗?也许要从ID中过滤它,因为你说
DISTINCT
不起作用,这意味着这4个结果是不同的。你想要哪一个?其他人是否应在数据库中?请尝试选择最小值(id)或使用限制。你应该提供更多的细节来检查这是否适合你的目的。我想这是真的。我可以将结果限制为显示4种相同产品中的1种吗?也许要从ID中过滤它,因为你说
DISTINCT
不起作用,这意味着这4个结果是不同的。你想要哪一个?其他人是否应在数据库中?请尝试选择最小值(id)或使用限制。你应该提供更多的细节来检查这是否适合你的目的。我测试了它,但没有什么区别。然而,我认为你是对的,在db模式上,我没有注意到,没有进一步的细节,我不能确定,但是数据库中的信息应该是这样组织的:
cscart\u产品11 cscart\u产品描述
cscart\u产品n1 cscart\u产品11 cscart\u类别描述
。所以每个产品应该有一个且只有一个对应的描述,每个类别可以包含0到N个产品,每个类别应该有一个且只有一个描述。主ID和外部ID(来自其他表)应该对应。我测试了它,但没有区别。然而,我认为你是对的,在db模式上,我没有注意到,没有进一步的细节,我不能确定,但是数据库中的信息应该是这样组织的:
cscart\u产品11 cscart\u产品描述
cscart\u产品n1 cscart\u产品11 cscart\u类别描述
。所以每个产品应该有一个且只有一个对应的描述,每个类别可以包含0到N个产品,每个类别应该有一个且只有一个描述。主ID和外部ID(来自其他表)应该对应。