Today i have to solve a problem in MySql , The problem is i have two table in openCart
I can do tha by in php by taking the category name to it's respective product id and implode them , but it will take much time and processor power cos the i have to do query every product id separately, I was searching the right query in MySql and found the function GROUP_CONCAT() http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
Mysql function: GROUP_CONCAT() (Like implode() in php)
1. category_description
category_id
language
name
1
1
category 1
2
1
category 2
3
1
category 3
4
1
category 4
5
1
category 5
6
1
category 6
7
1
category 7
8
1
category 8
1. product_category
produc_id category_id
1 1
1 2
1 5
2 1
2 3
2 4
3 2
3 6
The resulting data should be like that produc_id | category_name |
1 | category 1,category 2,category 5 |
2 | category 1,category 3,category 4 |
3 | category 2,category 6 |
I can do tha by in php by taking the category name to it's respective product id and implode them , but it will take much time and processor power cos the i have to do query every product id separately, I was searching the right query in MySql and found the function GROUP_CONCAT() http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
SELECT pc.product_id,GROUP_CONCAT(DISTINCT cd.name) category_name
FROM product_to_category pc
LEFT JOIN category_description cd ON (pc.category_id=cd.category_id)
WHERE cd.language_id =1 GROUP BY pc.product_id
And made the query i was looking for and solved my problem :)Mysql function: GROUP_CONCAT() (Like implode() in php)
This works very well! Thank you.
ReplyDeleteRegards from Mexico
Thanks
DeleteThank's that very useful
ReplyDeletewelcome
Deletethx a lot...
ReplyDeletewelcome
Delete