Laravel:如何仅通过1个查询从具有相同ID的多个表中删除行?

问题描述:

我有这段代码可以一口气从多个表中删除数据:

I have this code to delete data from multiple tables in one go:

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个查询,guardianschool表中的register_id是student表的外键.我一直在尝试使用连接,但仅删除student表记录.有什么解决方法吗?

I'm trying to shorten this into 1 query only, register_id from guardian and school tables is the foreign key of student table. I've been trying to use join but only student table record is deleted. Is there any workaround this?

类似的东西-尚未测试

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();

或者您可以使用完全原始的查询:

Or you could use a fully raw query:

 DB::query('SQL statement here');

基本上重新创建与此类似的内容:从多个表中删除行

Basically recreating something similar to this: delete rows from multiple tables