Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सबसे हालिया रिकॉर्ड द्वारा लारवेल एलोक्वेंट समूह

created_at . के आधार पर प्रत्येक शहर के लिए प्रति ग्राहक नवीनतम रिकॉर्ड प्राप्त करने के लिए आप स्वयं शामिल होने का उपयोग कर सकते हैं

DB::table('yourTable as t')
  ->select('t.*')
  ->leftJoin('yourTable as t1', function ($join) {
        $join->on('t.Customer','=','t1.Customer')
             ->where('t.City', '=', 't1.City')
             ->whereRaw(DB::raw('t.created_at < t1.created_at'));
   })
  ->whereNull('t1.id')
  ->get();

सादे SQL में यह कुछ इस तरह होगा

select t.*
from yourTable t
left join yourTable t1
on t.Customer = t1.Customer
and t.City = t1.City
and t.created_at < t1.created_at
where t1.id is null

डेमो

सेल्फ इनर जॉइन के साथ एक और तरीका होगा

select t.*
from yourTable t
join (
    select  Customer,City,max(ID) ID
    from yourTable
    group by Customer,City
) t1
on t.Customer = t1.Customer
and t.City = t1.City
and t.ID = t1.ID

डेमो




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP लॉटरी टिकट विजेता पिकर

  2. होस्ट xxxx को इस MySQL सर्वर से कनेक्ट करने की अनुमति नहीं है

  3. क्या एक एकल क्वेरी परमाणु के भीतर mysql एकाधिक प्रविष्टियां हैं?

  4. MySQL में टेबल को डुप्लिकेट कैसे करें

  5. सिंक से बाहर आदेश; आप अभी यह आदेश नहीं चला सकते हैं