MySQL从相关表中选择记录

标签 mysql

所以我有两个表:

产品 ID 姓名

产品变体 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

这可能吗?

最佳答案

正如评论中提到的,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

关于MySQL从相关表中选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21834937/

相关文章:

php - 加入mysql表,如果为空则获取所有记录

MySQL:从格式异常的 XML 文件中提取数据

mysql - 当用户选择的选项传输时,避免 MySql 中出现符号错误

php - 如何禁用另一个页面的特定代码?

javascript - 我想读出我的多重上传表单的文件名,并且我想将其包含在数据库中

MySQL 将 STR_TO_DATE 转换为 10 位微秒

javascript - JQuery Mobile Mysql数据库过滤系统

php - 代码点火器搜索

php - 如何将MySQL数据库中的特殊字符显示到html中?

java - 加载驱动类 com.mysql.jdbc.Driver 失败