我在这里经历了回答,但我很困惑......删除数据时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;
答案 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)
这里有三个选项:
在两个表中找到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';
在两个表中找到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';
删除在两个表中找到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';
为清晰起见,请参阅此sqlfiddle。