Eu tenho uma pergunta sobre leftjoin e junte-se a laravel Eu quero reescrever a seguinte amostra para laravel, como posso fazer isso?
LEFT JOIN(advertsolution_f SF
JOIN function_d FD ON SF.fd_id = FD.fd_id
JOIN function_m FM ON FD.fm_id = FM.fm_id)
ON SM.ads_id = SF.ads_id
Eu tento reescrevê-lo assim, mas eu acho que não é uma boa idéia.
->leftJoin($SF,$SM.".ads_id",$SF.".ads_id")
->leftjoin($FD,$SF.".fd_id",$FD.".fd_id")
->leftjoin($FM,$FD.".fm_id",$FM.".fm_id")
porque eu não tenho idéia de como juntar a mesa para $ SF em particular.
Respostas:
0 para resposta № 1Mapa assim,
->leftJoin($SF,$SM.".ads_id","=",$SF.".ads_id")
->leftjoin($FD,$SF.".fd_id","=",$FD.".fd_id")
->leftjoin($FM,$FD.".fm_id","=",$FM.".fm_id")
Você está ausente = faça login na consulta.
EDITAR
EXEMPLO VOCÊ DADA, Estou escrevendo consulta em nome dela, você só precisa mapear com seus campos e tabelas originais,
DB::table("a")
->leftJoin("b","b.a_id","=","a.id")
->leftJoin("c","c.b_id","=","b.id")
->leftJoin("d","d.bd_id","=","b.bdid")
->get();
Mapeie esta consulta, conforme sua necessidade, deve funcionar.
0 para resposta № 2
Para fazer essa consulta complexa, você pode usar RAW EXPRESSIONS
gostar:
$users = DB::table("users")
->select(DB::raw("count(*) as user_count, status"))
->where("status", "<>", 1)
->get();
Expressões Crus
Às vezes você pode precisar usar uma expressão bruta emuma consulta. Essas expressões serão injetadas na consulta como strings, portanto, tome cuidado para não criar pontos de injeção SQL! Para criar uma expressão bruta.