MySQL简单连接避免重复行

时间:2019-01-24 19:37:21

标签: mysql sql

让我们说我有2张桌子: 1st包含以下列:

products
--------
id   name        price
1  someproduct  99

第二

productimages
-----------
productId img
1          someimgurl
1          someimgurl2

我想获得产品1的名称,价格和图片。

SELECT products.name, products.price, productimages.img  FROM products INNER JOIN productimages WHERE products.id=1

此查询给我以下结果:

[ {
    name: 'someproduct',
    price: 99,
    img:
     'someimg' },
   {
    name: 'someproduct',
    price: 99,
    img:
     'someimgurl2' }
]

您看到的是重复的名称和价格。结果是我试图得到的是

[ {
    name: 'someproduct',
    price: 99,
    img:[
     'someimgurl','someimgurl2'] },
]

1 个答案:

答案 0 :(得分:1)

您可以使用 aggregation 获取单个行。也许:

SELECT p.name, p.price, GROUP_CONCAT(pi.img) as img
FROM products p INNER JOIN
     productimages pi
     on p.id = pi.product_id
WHERE p.id = 1
GROUP BY p.name, p.price;

我还注意到您有一个JOIN,没有ON子句。这将是除MySQL以外的任何数据库中的语法错误。