I am trying to export all the products and some info about them from my mySQL so I wrote the following query
SELECT * FROM products
JOIN descriptions
ON products.product_id = descriptions.product_id
JOIN category_descriptions
ON categories.category_id = descriptions.category_id
for a reason, it outputs every product four times. Can anyone help me to find out why?
Update:开发者_开发问答 There are only 122 products in cscart_products. The results after this query are 488.
Add GROUP BY cscart_products.product_id
Your query:
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
solves your problem: http://www.sql-tutorial.com/sql-distinct-sql-tutorial/
Try left join. http://phpweby.com/tutorials/mysql/32
Either a product has several descriptions or categories, or a category has several descriptions, or there are duplicate entries on your database.
Can anyone help me to find out why?
Here's a clue. The wildcard character you are using is used to display all columns/fields. There are four tables used in the query. Now we can't be certain of anything as the database schemas haven't been posted.
精彩评论