Skip to main content

انتخاب کمترین رکورد در 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

 

 

 

No Comments yet!

Your Email address will not be published.