我有两个MySQL表,产品和条形码.一个产品可能有多个条形码,这就是为什么我把它分成它自己的表.
这是我尝试过的(使用CodeIgnighter的Active Record,但我在这里写出了查询,这意味着如果有拼写错误,它可能不在我的实际查询中):
SELECT
products.id,
products.snipe_price,
group_concat(barcodes.barcode) as barcodes
FROM products
LEFT JOIN barcodes on barcodes.product_id = products.id
Run Code Online (Sandbox Code Playgroud)
但是这只返回一行,其中包含每个产品concat编辑的所有条形码,如何使用产品条形码为每个产品获得一行?
我宁愿不必拆分它,但如果没有解决方案join那么请告诉我.
Gor*_*off 35
你需要一个group by:
SELECT products.id, products.snipe_price, group_concat(barcodes.barcode) as barcodes
FROM products LEFT JOIN
barcodes
on barcodes.product_id = products.id
group by products.id;
Run Code Online (Sandbox Code Playgroud)
如果没有group by,MySQL会将整个查询解释为聚合查询,以汇总所有数据(因为存在group_concat()聚合函数).因此,它只返回一行,汇总所有数据.