leftjoinについて質問があり、laravelに参加してください 次のサンプルをlalavelに書き換えたいのですが、どうすればいいですか
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
私はこのように書き直そうとしますが、私はそれは良い考えではないと思います。
->leftJoin($SF,$SM.".ads_id",$SF.".ads_id")
->leftjoin($FD,$SF.".fd_id",$FD.".fd_id")
->leftjoin($FM,$FD.".fm_id",$FM.".fm_id")
私はどうやってテーブルを$ SFに個人的に参加させるのかわからないからです。
回答:
回答№1は0このような地図、
->leftJoin($SF,$SM.".ads_id","=",$SF.".ads_id")
->leftjoin($FD,$SF.".fd_id","=",$FD.".fd_id")
->leftjoin($FM,$FD.".fm_id","=",$FM.".fm_id")
=サインインクエリがありません。
EDIT
あなたが与えた例、私はそれに代わってクエリを書いています、あなたはただあなたの元のフィールドとテーブルでマップする必要があります
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();
要件に従って、このクエリをマップします。 それはうまくいくはずです。
回答№2の場合は0
そのような複雑なクエリを作るためにあなたは使うことができます RAW EXPRESSIONS
次のように:
$users = DB::table("users")
->select(DB::raw("count(*) as user_count, status"))
->where("status", "<>", 1)
->get();
生の式
時には生の式を使う必要があるかもしれません。クエリこれらの式は文字列としてクエリに挿入されるので、SQLインジェクションポイントを作成しないように注意してください。生の式を作成します。