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

LARAVEL 5.6 . में GROUP BY और ORDER BY का एक साथ उपयोग कैसे करें

सबक्वेरी जॉइन का उपयोग करें:

$days = 10 ;
$currencies = Currency::with(
    [
        'exchangeRate' => function ($q) use ($days) {
            $latest = CurrencyExchangeRate::select('currency_id', 'date')
                ->selectRaw('MAX(created_at) created_at')
                ->groupBy('currency_id', 'date');
            $q->joinSub($latest, 'latest', function($join) {
                $join->on('currency_exchange_rates.currency_id', 'latest.currency_id')
                    ->on('currency_exchange_rates.date', 'latest.date')
                    ->on('currency_exchange_rates.created_at', 'latest.created_at');
            })->where('currency_exchange_rates.created_at', ">", strtotime('-' . $days . ' days', time()));
        }
    ]
)->get();

यह निम्न क्वेरी निष्पादित करता है:

select *
from `currency_exchange_rates`
inner join (
  select `currency_id`, `date`, MAX(created_at) created_at
  from `currency_exchange_rates`
  group by `currency_id`, `date`
) as `latest`
on `currency_exchange_rates`.`currency_id` = `latest`.`currency_id`
  and `currency_exchange_rates`.`date` = `latest`.`date`
  and `currency_exchange_rates`.`created_at` = `latest`.`created_at`
where `currency_exchange_rates`.`currency_id` in (?, ...)
  and `currency_exchange_rates`.`created_at` > ?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या MySQL 5.0 में किसी अन्य सर्वर पर स्थित तालिका का दृश्य हो सकता है

  2. MySQL का संस्करण बनाम वितरण संख्या

  3. PHP MySQL Yii - डेटाबेस रीडिंग नहीं लिख रहा है

  4. क्वेरी के आधार पर सभी पंक्तियों को एक सरणी में लाएं

  5. एक MySQL डेटाबेस में क्यूआर कोड ट्रांसफर करें