【发布时间】:2021-10-04 12:04:38
【问题描述】:
表 1
+------------+--------------------+
| Serialnum | Products |
+------------+--------------------+
| 1 | Earbuds |
| 2 | Phone |
| 3 | Charger |
| 4 | Data Cable |
| 5 | Speakers |
+------------+--------------------+
表 2
+------------+--------------------+
| product_id | Brands |
+------------+--------------------+
| 1 | Samsung |
| 1 | Xaomi |
| 1 | JBL |
| 2 | Ronin |
| 2 | Apple |
+------------+--------------------+
SELECT products.Serialnum,
products.Product_Name,
(SELECT GROUP_CONCAT(brand_name)
FROM products_brands
GROUP BY product_id)
FROM `products`
INNER JOIN products_brands ON products.Serialnum=products_brands.product_id
#1242 - 子查询返回多于 1 行
我正在尝试从另一个表中获取与我在外键中给出的该表中的匹配 id 的连接值 像这样:
+------------+------------------------------+
| Products | Brands |
+------------+------------------------------+
|Earbuds |Samsung,Xaomi,JBL,Ronin,Apple |
|Phone | Xaomi,Samsung,Apple |
|Data Cable | Ronin,Apple,Samsung |
|Speakers | JBL |
|Charger | Ronin,Apple,Samsung |
+------------+------------------------------+
编辑: 我改了代码:
SELECT products.Serialnum,products.Product_Name FROM `products`
INNER JOIN (SELECT GROUP_CONCAT(brand_name)
FROM products_brands
GROUP BY product_id) products_brands
ON products.Serialnum=products_brands.product_id
新错误:#1054 - 'on clause' 中的未知列 'products_brands.product_id'
【问题讨论】:
-
根据您的数据示例,您的预期输出我认为可能是错误的,因为所有
product_id都是1 -
这是一个示例,我有多个具有不同 product_id 的条目
-
` Product_Name : Earbuds, Brands : Samsung,Xaomi,Ronin,Apple,JBL,Samsung,Xaomi,Ronin,...