我似乎无法使用distinct
或group by
将某些mySQL记录组合在一起。下面的SQL查询只返回一行 - 我想要CID中的所有值..
我想通过cid或表格中的第一个集合来选择一个随机组。我不能使用AND CID = X ..有没有办法在没有..
表
id pid image sort_order cid
-----
2474 50 data/low.jpg 2 56
2473 50 data/hi.jpg 3 59
2471 50 data/thumn.jpg 500 59
2472 50 data/front.jpg 1000 56
2470 50 data/back.jpg 1 56
查询
SELECT *
FROM `ocm1__product_image`
WHERE `product_id` = '50'
GROUP BY `cid`
ORDER BY `ocm1__product_image`.`sort_order` ASC
LIMIT 0 , 30
这应该返回
id pid image sort_order cid
2474 50 data/low.jpg 2 56
2472 50 data/front.jpg 1000 56
2470 50 data/back.jpg 1 56
但它会返回两种颜色..我不能将这个组独一无二吗?
它返回错误,我想列出所有cid唯一值
id pid image sort_order cid
2474 50 data/low.jpg 2 56
2471 50 data/thumn.jpg 500 59
答案 0 :(得分:2)
答案 1 :(得分:-1)
请勿使用group by
对其进行排序,您只需使用order by
,此外您还必须使用CID
值对特定Customer ID
进行排序,您的值为Product ID (PID)
,但未向样本中提供CID值。
SELECT *
FROM `ocm1__product_image`
WHERE `product_id` = '50' and `cid` = '56'
ORDER BY `ocm1__product_image`.`sort_order` ASC
LIMIT 0 , 30
或者如果您想使用ID
对它们进行排序,请使用primary key
SELECT *
FROM `ocm1__product_image`
WHERE `product_id` = '50' and `cid` = '56'
ORDER BY `ocm1__product_image`.`id` ASC
LIMIT 0 , 30