我有这个代码一次性删除多个表中的数据:
DB::table('tb_stikes_register_school')->where('register_id', $_POST['id'])->delete();
DB::table('tb_stikes_register_guardian')->where('register_id', $_POST['id'])->delete();
DB::table('tb_stikes_register_student')->where('register_id', $_POST['id'])->delete();
我试图将此缩短为仅1个查询,guardian
中的register_id和school
表是student
表的外键。我一直在尝试使用join,但只删除了student
表记录。这有什么解决方法吗?
答案 0 :(得分:2)
这样的事可能 - 没有经过测试
DB::table(DB::raw('FROM tb_stikes_register_school, tb_stikes_register_guardian, tb_stikes_register_student'))
->join(ENTER JOIN INFO) // wasn't clear how your tables were related
->where('register_id', $_POST['id'])
->delete();
或者您可以使用完全原始的查询:
DB::query('SQL statement here');
基本上重新创建类似于此的内容:delete rows from multiple tables