Mysql 每行选择一个数组?

Mysql 每行选择一个数组?,mysql,select,arrays,Mysql,Select,Arrays,我有两张桌子: 1. products - product_id - title 2. product_categories - product_id - category_id 每个产品可以有多个类别。我将此信息存储在product_categories表中。当我在1个查询中选择产品时,我希望能够选择所有类别ID。我该怎么做?到目前为止,我有以下内容,但它将仅选择1个类别id: SELECT p.*, (SELECT category_id FROM pr

我有两张桌子:

1. products
- product_id
- title
2. product_categories
- product_id
- category_id
每个产品可以有多个类别。我将此信息存储在product_categories表中。当我在1个查询中选择产品时,我希望能够选择所有类别ID。我该怎么做?到目前为止,我有以下内容,但它将仅选择1个类别id:

SELECT
  p.*,
  (SELECT
     category_id
   FROM 
     product_categories
   WHERE product_id = p.product_id) as category_ids
FROM
   products AS p

从中选择产品。*,产品类别
左外部连接product_categories上的product_categories.product_id=products.product_id

您可以使用左连接、分组方式和分组连接


非常接近我需要的,但是我需要它作为数组返回。我将把它与sphinx的MVA数据类型一起使用。您希望输出是什么样的?举个例子会有帮助。比如每行都有一个多维数组。因此,所有常规产品信息都可以在PHP中检索,如$row['title'],但类别将是另一个数组$row['product_categories'][0]将获得第一个产品类别id。
SELECT products.*, GROUP_CONCAT(category_id SEPARATOR ' ')
FROM products LEFT JOIN product_categories
                ON product_categories.product_id = products.product_id
GROUP BY product_id;