PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara menggunakan gabungan dalam dengan subkueri di Laravel Eloquent

ini berhasil (abaikan hal-hal dinamis seperti ini->getClassName dll) .. logika dasarnya berfungsi dengan baik

public function scopeAddTranslations($query)
{
    $t = new Translation();

    $subq = $t->select('item','text as ref_ar')
              ->where('locale','=','ar')
              ->where('item','like',$this->getClassName().'.ref%');

    $query->leftjoin(\DB::raw('('.$subq->toSql().') as t'), 
      function ($join) use ($subq) { 
          $join->on(\DB::raw('SUBSTRING('.$this->getTable().'.ref_translation 
                              FROM 14 FOR 26)'),
                                 '=',
                                 \DB::raw('t.item'))
                   ->addBinding($subq->getBindings());
            });
    return $query;
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih baris dengan nilai maksimal dari grup baris yang dikelompokkan berdasarkan beberapa kolom (PSQL)

  2. Gabung berantai tidak memfilter seperti yang diharapkan

  3. psql perintah tidak valid \N saat memulihkan sql

  4. Buat daftar dengan hari pertama dan terakhir bulan untuk periode tertentu

  5. Hapus baris duplikat (jangan hapus semua duplikat)