sql >> Databáze >  >> RDS >> Mysql

Laravel 5.4 Raw Join Query

Pomocí zpětného volání můžete vytvořit složitější spojovací dotaz.

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

Zde je odkaz na laravel doc - https://laravel.com/docs/5.4/queries# se připojí Sekce "Advanced Join Clauses".

UPD::Jak je uvedeno v komentáři, není dobrý nápad mít řetězec pro takové typy dat. Hledání příčiny podle rovnosti by mělo být mnohem jednodušší než kontrola řetězce. I když by vaše množství dat nemělo mít velký rozdíl, nikdy nevíte, co se s vaší aplikací v budoucnu stane.

Ale pokud to přesto chcete udělat, myslím, že to můžete zkusit takto

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

Připojte se, což zkontroluje existenci id v cat_id.




  1. Potřebujete pomoc s propojením tabulek oracle v MS Access

  2. Funkce SYS_GUID() v Oracle

  3. Jak vybrat n-tý řádek v tabulce databáze SQL?

  4. Jak bude fungovat slíbený modul mysql s NodeJS?