mysql查询产品和该产品的所有类别

时间:2014-04-10 22:12:57

标签: mysql join subquery

好的我有3张我正在使用的桌子

产品
ID
命名
说明
url_slug

类别
ID
命名
url_slug

products_to_categories
PRODUCT_ID
CATEGORY_ID

我有一个页面,您可以访问并查看所有最新产品。它不属于什么类别,只是它是新的。

我展示了这样的产品

产品1“链接到产品页面”
类别1,类别2,类别3“和每个类别链接到该类别”

产品2“链接到产品页面”
类别3,类别7“和每个类别链接到该类别”

为了实现这一目标,我目前正在查询最新产品 循环遍历它们,对于每个产品,我都会查询产品所在的所有类别。

它可以正常工作,但是如果您在201次查询1页加载时列出100或200个产品。

我想通过一个查询完成此操作并循环完成。

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:0)

使用JOIN:

SELECT p.name AS product_name, p.id AS product_id,
       c.name AS category_name, c.id AS category_id
FROM products AS p
JOIN product_categories AS pc ON p.id = pc.product_id
JOIN categories AS c ON c.id = pc.category_id
ORDER BY product_id, category_id

遍历结果,并在每次更改时打印Product标题,然后打印每行的类别信息。