让我们说我有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'] },
]
答案 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以外的任何数据库中的语法错误。