[英]SQL: How to select one record per day, assuming that each day contain more than 1 value MySQL
[英]How to select more than one record using MySQL Group by?
我似乎无法使用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
这将返回所请求的pid
具有最低cid
所有条目。
它给出了与您所说的相同的结果,而没有给出特定的cid
作为条件;
SELECT o1.*
FROM `ocm1__product_image` o1
LEFT JOIN `ocm1__product_image` o2
ON o1.pid=o2.pid AND o1.cid > o2.cid
WHERE o1.`pid` = '50' AND o2.cid IS NULL
ORDER BY `o1`.`sort_order` ASC
LIMIT 0 , 30
不要使用group by
对它们进行排序,你只需要使用order by
另外你还必须使用特定Customer ID
的CID
值对它们进行排序,你有值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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.