Select min Rows in mysql Group by userid
سلام . روز بخیر. فرض کنید هر مشتری مبالغ مختلفی خرید داشته است در دیتابیس userid را به همراه مبالغ مختلف خرید او ذخیره کرده ایم حالا میخواهیم کمترین خرید هر مشتری را بدست آوریم
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);
حالا فرض کنید کاربر شماره 1 و 3 هر دو 2 خرید داشته اند ما میخواهیم هر کاربر تفکیک شود و کمترین خرید را برای او نمایش دهد
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
نتیجه
id —|—userid—-|—price
3 | 1 | 100
5 | 3 | 100
https://sqlfiddle.com/#!9/c9bad/2