Php 使用“UNION”删除MySQLI查询

Php 使用“UNION”删除MySQLI查询,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我想删除2个表中数据库的一些信息 第一个问题,可能吗? 如果是: 我尝试了一个UNION DELETE查询,但它不起作用 $delete = mysqli_query($sql, "(DELETE FROM table1 WHERE id LIKE '".$id."' && userid LIKE '".$userid."') UNION (DELETE FROM table2 WHERE source_id LIKE '".$id."' && userid LI

我想删除2个表中数据库的一些信息

第一个问题,可能吗? 如果是:

我尝试了一个UNION DELETE查询,但它不起作用

$delete = mysqli_query($sql, "(DELETE FROM table1 WHERE id LIKE '".$id."' && userid LIKE '".$userid."') UNION (DELETE FROM table2 WHERE source_id LIKE '".$id."' && userid LIKE '".$userid."')");
试试这个:

DELETE FROM 
    n.table1 INNER JOIN m.table2
WHERE 
    n.id = m.source 
  AND 
    n.userid = m.userid 
  AND  
    n.id LIKE '".$id."' 
  AND 
    n.userid LIKE '".$userid."' 
试试这个:

DELETE FROM 
    n.table1 INNER JOIN m.table2
WHERE 
    n.id = m.source 
  AND 
    n.userid = m.userid 
  AND  
    n.id LIKE '".$id."' 
  AND 
    n.userid LIKE '".$userid."' 
当要使用多个表获取数据时,所有这些操作都用于显示数据,即与SELECT一起使用

要删除或更新,请使用单独的查询

就你而言

$delete = mysqli_query($sql, "(DELETE FROM table1 WHERE id LIKE '".$id."' && userid LIKE '".$userid."'));

if($delete)
{
   $delete2 = mysqli_query($sql, "(DELETE FROM table2 WHERE source_id LIKE '".$id."' && userid LIKE '".$userid."')");
}
当要使用多个表获取数据时,所有这些操作都用于显示数据,即与SELECT一起使用

要删除或更新,请使用单独的查询

就你而言

$delete = mysqli_query($sql, "(DELETE FROM table1 WHERE id LIKE '".$id."' && userid LIKE '".$userid."'));

if($delete)
{
   $delete2 = mysqli_query($sql, "(DELETE FROM table2 WHERE source_id LIKE '".$id."' && userid LIKE '".$userid."')");
}
UNION仅与SELECT语句一起使用:

如果不想使用两个单独的DELETE语句,并且这两个表是相关的,请尝试使用JOIN语句:

UNION仅与SELECT语句一起使用:

如果不想使用两个单独的DELETE语句,并且这两个表是相关的,请尝试使用JOIN语句:



通过在一个查询中删除并合并,您打算得到什么?为什么不使用两个单独的delete语句呢?我想删除两个表的信息,我想这可以通过Union实现。我想你可以连接和删除。。。类似于将tbl1、tbl2从表1中删除为tbl1,将表2作为tbl2加入。。。。。。。。。。其中id.tbl1类似于“$id.”……不,简单地说,使用两个连续的delete语句。另外,我刚刚注意到&。在mysql中,您必须使用AND运算符,而不是在一个查询中使用delete和union,您打算得到什么?为什么不使用两个单独的delete语句呢?我想删除两个表的信息,我想这可以通过Union实现。我想你可以连接和删除。。。类似于将tbl1、tbl2从表1中删除为tbl1,将表2作为tbl2加入。。。。。。。。。。其中id.tbl1类似于“$id.”……不,简单地说,使用两个连续的delete语句。另外,我刚刚注意到&。在mysql中,您必须使用AND运算符而不是WOW…您知道n.table1内部连接m.table2在这里要做什么吗??:@NoobEditor:我还没有测试过,但即使它达到了目的……我当然不会推荐它……为什么要反对函数和特性的原生用法???@NoobEditor:我只使用单独的删除,但OP希望在一个查询中完成,所以是的,我不推荐它,但有一种方法可以做到。你能同意吗?:不……我不会……一个人不应该盲目地回答……回答应该帮助其他人改进逻辑和最佳实践……不仅仅是得到解决方案。。。。该死,我听起来像个大学教授!!:哦…你知道n.table1内部连接m.table2在这里要做什么吗??:@NoobEditor:我还没有测试过,但即使它达到了目的……我当然不会推荐它……为什么要反对函数和特性的原生用法???@NoobEditor:我只使用单独的删除,但OP希望在一个查询中完成,所以是的,我不推荐它,但有一种方法可以做到。你能同意吗?:不……我不会……一个人不应该盲目地回答……回答应该帮助其他人改进逻辑和最佳实践……不仅仅是得到解决方案。。。。该死,我听起来像个大学教授!!:谢谢你。我会这么做的。如果有帮助的话,你愿意在任何被接受的答案上做标记吗。。。???有助于将问题表示为已结束!!:好的,谢谢。我会这么做的。如果有帮助的话,你愿意在任何被接受的答案上做标记吗。。。???有助于将问题表示为已结束!!: