Laravel:如何仅通过1个查询从具有相同ID的多个表中删除行? [英] Laravel: How to delete rows from multiple table with same id with only 1 query?

查看:45
本文介绍了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

这篇关于Laravel:如何仅通过1个查询从具有相同ID的多个表中删除行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆