MySQL从相关表中选择记录

时间:2014-02-17 16:58:08

标签: mysql

所以我有两张桌子:

产品 ID 名称

product_variants ID PRODUCT_ID 名称 条形码

我想选择所有带有一个查询的产品,其中一个字段包含相关变量的数量,另一个字段包含所有相关的条形码(按空格分隔)。

所以例如这个输出:

product_id    product_name    product_variant_count    product_variant_barcodes
1             Product 1       3                        1234567890 0987654321 5432109876
2             Product 2       1                        6789054321
3             Product 3       2                        1234509876 3456781290

这可能吗?

1 个答案:

答案 0 :(得分:1)

正如评论GROUP_CONCAT中提到的那样,这是完美的。

从产品中选择并加入product_variants:

SELECT p.id, p.name, COUNT(pr.id) AS product_variant_count, 
       GROUP_CONCAT(pr.barcode  SEPARATOR ' ') AS product_variant_barcodes
FROM products p
LEFT JOIN product_variants pr ON (p.id = pr.product_id)
GROUP BY p.id