Php 当我从学生表中删除时,它还会删除投票者表中的项目

Php 当我从学生表中删除时,它还会删除投票者表中的项目,php,sql,mysqli,Php,Sql,Mysqli,我是新手,不知道如何编写好代码,但我想修改系统 目标:当我从学生表中删除'id'时,它也会从选民表中删除'userid' DB的屏幕截图: 学生表 选民表 这是我正在使用的代码。(此代码仅删除students表上的行) 我尝试使用另一个查询,但什么也没发生。有人能帮我修一下密码吗?我是新来的 <?php ob_start(); session_start(); if (!isset($_SESSION['id'])){ header("location:../login.php

我是新手,不知道如何编写好代码,但我想修改系统

目标:当我从学生表中删除'id'时,它也会从选民表中删除'userid'

DB的屏幕截图:

学生表

选民表

这是我正在使用的代码。(此代码仅删除students表上的行) 我尝试使用另一个查询,但什么也没发生。有人能帮我修一下密码吗?我是新来的

<?php ob_start();
session_start();
if (!isset($_SESSION['id'])){
    header("location:../login.php");
}
?>
<?php
include('../connect.php');
$id=$_GET['id'];
$del = mysqli_query($connection,"DELETE FROM students WHERE id='$id'");

?>


MySQL:

您可以按如下方式删除:

DELETE users
  FROM users
 INNER JOIN voters
         ON users.id = voters.userid
 WHERE users.name = 'Jordan Santos';
有关数据的示例,请参见。(您可以使用
#
注释掉
DELETE
语句以查看查询结果,而不删除任何内容。)

博士后: 您可以使用两个(即,
WITH
子句)来删除每个表中的内容:

WITH user_deletion AS (
  -- this deletes the user based on username
  DELETE
    FROM users u
   WHERE username='Dad'
  RETURNING id, username
), 

vote_deletion AS (
   -- this gets the deleted user_id from above and deletes the corresponding vote(s)
   DELETE
    FROM votes
   WHERE user_id = (SELECT id FROM user_deletion)
  RETURNING vote_id, user_id, vote
)

-- this runs the DELETE statements in the clauses above
SELECT udel.*, vdel.* 
  FROM user_deletion udel
 INNER JOIN vote_deletion vdel
    ON udel.id = vdel.user_id;

有关数据的Postgres示例,请参阅,该示例显示删除前后的结果。

这是使用任何RDBMS时所需的功能。i、 e.当有两个表之间具有
外键关系
且第一个表的
外键
是第二个表的
主键时。然后,删除第一个表记录将触发删除第二个表中与其关联的记录。
这被称为级联删除,下面的定义对其进行了更好的解释。

带有级联删除的外键意味着如果父表中的记录被删除,则子表中的相应记录将自动被删除。这在SQL Server中称为级联删除。

请提供包含所有主键和外键的表结构。为什么不对投票者运行另一个删除操作?似乎已将两个表连接起来。学生表“id”列中包含投票者表“userid”。请阅读
cascade delete