有没有办法通过查询构建器在Laravel 4上进行内部联接删除?
我有这个示例查询(sample query taken from this source.):
DELETE s.* FROM spawnlist s
INNER JOIN npc n ON s.npc_templateid = n.idTemplate
WHERE (n.type = "monster");
我尝试过类似的事情:
DB::table('spawnlist as s')
->join('npc as n', 's.npc_templateid', '=', 'n.idTemplate')
->where('n.type', 'monster')
->delete();
但似乎连接不能在这里完成?
答案 0 :(得分:0)
我认为最好的方式是我们laravel的活动,它更容易和干净。 你可以像这样执行相同的任务:
DB::table('spawnlist')->delete();
然后创建一个spawnlist事件捕获删除事件并删除其他表,如下所示:
Spawnlist::deleting( function ($sl)
{
DB::table('npc')->delete();
});