从php中的多个表中删除相同的数据

时间:2014-12-22 09:39:38

标签: php

我在这里经历了回答,但我很困惑......删除数据时INNERJOIN或LEFTJOIN是什么。我有问题删除多个表中的相同数据...这个例子 我有

  

表user_information     包含user_id。主键

     

表格注册     包含user_id

这2个表,我没有创建外键..我想删除具有特定user_id数据的行..我尝试创建这个PHP代码

<?php

include ('dbconnect.php');


$matric=$_GET['user_id'];


$sql="DELETE FROM user_information, registration WHERE user_id='$matric'";

$result=mysql_query($sql);


if($result){
header("location:../adminMuser.php");

}

else {
echo "ERROR";
}
?>

<?php

mysql_close();
?>

如何进行删除比删除特定user_id时,它可以删除在两个表中都具有该user_id的所有数据。如何使用INNERJOIN或LEFTJOIN或我需要做什么......我的php只显示错误

我也尝试这样做

$sql="DELETE user_id FROM user_information RIGHT JOIN registration ON user_information.user_id=registration.user_id WHERE user_id='$matric' ";

仍然只是显示&#34; ERROR&#34;

2 个答案:

答案 0 :(得分:1)

$sql1="DELETE FROM  registration WHERE user_id='$matric'";
$result=mysql_query($sql1); // delete the first registration table

$sql2="DELETE FROM user_information WHERE user_id='$matric'";
$result=mysql_query($sql2); // delete the user information table 

答案 1 :(得分:0)

这里有三个选项:

  1. 在两个表中找到user_id时删除。

    DELETE a.*, b.* FROM user_information a
    INNER JOIN registration b ON a.user_id = b.user_id
    WHERE a.user_id='$matric';
    
  2. 在两个表中找到user_id并在第二个表中找到NULL user_id时删除。

    DELETE a.*, b.* FROM user_information a
    LEFT OUTER JOIN registration b ON a.user_id = b.user_id
    WHERE a.user_id='$matric';
    
  3. 删除在两个表中找到user_id以及第一个表中的NULL user_id时。

    DELETE a.*, b.* FROM user_information a
    RIGHT OUTER JOIN registration b ON a.user_id = b.user_id
    WHERE a.user_id='$matric';
    
  4. 为清晰起见,请参阅此sqlfiddle。

    http://www.sqlfiddle.com/#!8/97cdd/1