انتخاب کمترین رکورد در mysql
Select min Rows in mysql Group by userid
سلام . روز بخیر. فرض کنید هر مشتری مبالغ مختلفی خرید داشته است در دیتابیس userid را به همراه مبالغ مختلف خرید او ذخیره کرده ایم حالا میخواهیم کمترین خرید هر مشتری را بدست آوریم
[sql]
CREATE TABLE `order` (
`id` int(11) NOT NULL,
`userid` int(11) NOT NULL,
`price` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `order` (`id`, `userid`, `price`) VALUES
(3, 1, 100),
(4, 1, 200),
(5, 3, 100),
(6, 3, 600);
[/sql]
حالا فرض کنید کاربر شماره 1 و 3 هر دو 2 خرید داشته اند ما میخواهیم هر کاربر تفکیک شود و کمترین خرید را برای او نمایش دهد
[sql]
SELECT a.id,a.userid,price FROM `order` a
INNER JOIN
(
SELECT t.userid , MIN(t.price) AS miin
FROM `order` t
GROUP BY userid
) b ON b.miin = a.price and b.userid = a.userid
[/sql]
نتیجه
id —|—userid—-|—price
3 | 1 | 100
5 | 3 | 100
https://sqlfiddle.com/#!9/c9bad/2