MySQL左连接,右连接多行,如何为左连接一行(右表中我想要的字段为concated)?

MySQL左连接,右连接多行,如何为左连接一行(右表中我想要的字段为concated)?,mysql,Mysql,我有两个MySQL表、产品和条形码。一个产品可能有多个条形码,这就是为什么我将其分离到它自己的表中 这就是我尝试过的(使用CodeIgnighter的活动记录,但我在这里写出了查询,这意味着如果有输入错误,它可能不在我的实际查询中): 但这只返回一行,其中包含每个产品的所有条形码concated,如何才能为每个产品获取一行产品条形码 我不想把它分开,但是如果没有join的解决方案,请告诉我。您需要一个分组: SELECT products.id, products.snipe_price, gr

我有两个MySQL表、产品和条形码。一个产品可能有多个条形码,这就是为什么我将其分离到它自己的表中

这就是我尝试过的(使用CodeIgnighter的活动记录,但我在这里写出了查询,这意味着如果有输入错误,它可能不在我的实际查询中):

但这只返回一行,其中包含每个产品的所有条形码
concat
ed,如何才能为每个产品获取一行产品条形码


我不想把它分开,但是如果没有
join
的解决方案,请告诉我。

您需要一个
分组:

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;

如果没有
groupby
,MySQL将整个查询解释为聚合查询,以汇总所有数据(因为存在一个聚合函数
group\u concat()
)。因此,它只返回一行,对所有数据进行汇总。

效果很好!如果它用json生成列表会更好format@eyal_katz . . . 若你们有问题,你们应该作为一个问题而不是一个评论来提问。那个么左表中的多行和右表中的多行呢?
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;