Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel 5.4 Surowe zapytanie sprzężenia

Możesz użyć wywołania zwrotnego, aby stworzyć bardziej skomplikowane zapytanie sprzężenia.

->leftJoin(TBL_CAT, function($query){
     $query->on(TBL_CAT.'id', '=', 'p.cat_id')->where("**", "**", "**");
})

Oto link do dokumentu laravel - https://laravel.com/docs/5.4/queries# łączy Sekcja „Zaawansowane klauzule łączenia”.

UPD::Jak wspomniano w komentarzu, nie jest dobrym pomysłem posiadanie ciągu znaków dla tego typu danych. Wyszukiwanie przyczyn przez równość powinno być znacznie prostsze niż sprawdzanie ciągu. Nawet jeśli ilość danych nie powinna mieć dużej różnicy, nigdy nie wiesz, co stanie się z Twoją aplikacją w przyszłości.

Ale jeśli nadal chcesz to zrobić, myślę, że możesz spróbować w ten sposób

->leftJoin(TBL_CAT, function($query){
     $query->where(DB::raw("FIND_IN_SET(".TBL_CAT.".id, p.cat_id)"), "<>", "0");
})

Dołącz, który sprawdzi istnienie identyfikatora w cat_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:odwracanie efektów mysql_real_escape_string na plik binarny

  2. PHP i MySQL :Pokaż SUMA czegoś, sklasyfikowane według odrębnych kategorii

  3. Dlaczego ten kod pdo::mysql ulega awarii w systemie Windows?

  4. php zamień klucze identyfikatorów tablicy

  5. Jak zapisać UUID jako plik binarny(16) w java?