Laravel:如何从只有1个查询的同一个id的多个表中删除行?

时间:2014-02-13 07:11:52

标签: php mysql laravel-4

我有这个代码一次性删除多个表中的数据:

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表记录。这有什么解决方法吗?

1 个答案:

答案 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