sql >> Database >  >> RDS >> Mysql

Laravel 5.4 Raw Join-query

U kunt terugbellen gebruiken om meer gecompliceerde join-query's te maken.

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

Hier is een link op laravel doc - https://laravel.com/docs/5.4/queries# doet mee "Geavanceerde lidmaatschapsclausules" sectie.

UPD::Zoals vermeld in de opmerking, is het geen goed idee om een ​​string te hebben voor dergelijke soorten gegevens. Oorzaak zoeken op gelijkheid zou veel eenvoudiger moeten zijn dan stringcontrole. Zelfs als uw hoeveelheid gegevens niet veel zou moeten verschillen, weet u nooit wat er in de toekomst met uw app zal gebeuren.

Maar als je dat nog steeds wilt doen, denk ik dat je het zo kunt proberen

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

Join die het bestaan ​​van id in cat_id zal controleren.




  1. Hoogste voorkomen van een waarde binnen elke groep

  2. Bijhouden op kolom- en rijniveau bij samenvoegreplicatie

  3. Hoe kan ik het beste een Oracle-database opnieuw maken?

  4. mysql-tijdstempel converteren naar de werkelijke datum en tijd?