![](/img/trans.png)
[英]If I print my variable, I will get four times a 1 instead of a number 4
[英]How can i fix my query that shows me four times each of the products instead of one?
我试图从mySQL导出所有产品和有关它们的一些信息,所以我编写了以下查询
SELECT * FROM products
JOIN descriptions
ON products.product_id = descriptions.product_id
JOIN category_descriptions
ON categories.category_id = descriptions.category_id
由于某种原因,它输出每个产品四次。 谁能帮我找出原因?
更新: cscart_products中只有122个产品。 该查询后的结果为488。
添加GROUP BY cscart_products.product_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
SELECT DISTINCT
解决了您的问题: http : //www.sql-tutorial.com/sql-distinct-sql-tutorial/
产品具有多个描述或类别,或者一个类别具有多个描述,或者数据库上存在重复的条目。
谁能帮我找出原因?
这是一个线索。 您使用的通配符用于显示所有列/字段。 查询中使用了四个表。 现在我们还不能确定什么,因为还没有发布数据库模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.