update 2021/06/15/10:31
前提・実現したいこと
laravelで3つのテーブルから行を同時に削除したい。
テーブルA、テーブルB、テーブルCがあり、テーブルAとテーブルBはテーブルA.ID,テーブルB.fooIDで繋がっていて、テーブルBとテーブルCはテーブルB.varID,テーブルC.buzzIDで繋がっている
発生している問題・エラーメッセージ
テーブルAからはテーブルA.IDで指定したIDの行が削除されるが、leftjoinさせたテーブルB、テーブルCからは行が削除されない
該当のソースコード
PHP
1 DB::table('bbs_boards')->leftJoin('bbs_threads', 'bbs_boards.id', '=', 'bbs_threads.board_id') 2 ->leftJoin('bbs_responses', 'bbs_threads.id', '=', 'bbs_responses.thread_id') 3 ->where('bbs_boards.id', '=', $request->id) 4 ->delete();
試してみた事 (10:31追記)
まず、平文のSQL文で3つのテーブルを同時に消せるか以下のSQL文を書いたところ、成功しました。
これをどうDBファサードに反映させればいいか悩んでおります。
MySQL
1DELETE `bbs_boards` , `bbs_threads` , `bbs_responses` from `bbs_boards` LEFT JOIN `bbs_threads` ON `bbs_boards`.`id` = `bbs_threads`.`board_id` RIGHT JOIN `bbs_responses` ON `bbs_responses`.`thread_id` = `bbs_threads`.`id` where `bbs_boards`.`id`=10
補足情報(FW/ツールのバージョンなど)
PHP7.4 laravel6
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/15 00:55