【问题标题】:MySQL delete row from at least one table using one queryMySQL使用一个查询从至少一个表中删除行
【发布时间】:2021-08-04 23:08:51
【问题描述】:

我有两张表:一张包含用户登录信息,另一张包含用户数据。我想删除后一个表中可能存在或不存在但前一个表中肯定存在的用户。我如何说明可能存在或不存在的用户?请注意,它应该在一个查询中......
我已经尝试过:

DELETE houses,houseusers FROM houses INNER JOIN houseusers ON houseusers.username = houses.username WHERE houses.username='user1' OR houseusers.username='user1';

【问题讨论】:

  • 可以在 1 个查询中完成。检查这个可能重复的问题Delete from two tables in one query
  • @ErrBon 我不认为这是重复的,因为如果第二个表中不存在行,我要求从至少一个表中删除。您链接的问题是关于从两个表中删除。

标签: mysql


【解决方案1】:
START TRANSACTION;
DELETE FROM houses WHERE username='user1';
DELETE FROM houseusers WHERE username='user1';
COMMIT;

【讨论】:

  • 为什么需要它在一个查询中?解释为什么这是一项要求。
  • 这是一个在 jdbc 准备好的语句上运行的查询,需要知道受影响的行数。
  • 所以运行两条语句。检索返回值,即受每个语句影响的行。将这两个数字相加。
  • 好的..我会在早上尝试并告诉你。我在哪里已经很晚了。
  • 要清楚,我的意思是运行两个准备好的语句。您不能在对准备好的语句的一次调用中运行两个 SQL 语句。好的,祝你明天好运。
猜你喜欢
  • 2012-07-28
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多