c# - 多重删除在 mysql 工作台中工作但在 Visual Studio 中不起作用

标签 c# mysql sql-delete workbench

我想使用 C# 和 mysql 从不同表中删除多行。我有3张 table 用户、项目和电子数据。在用户表中,我有以下列:ID(主键)、用户名、密码、权限。在电子数据中,我有:ID(主键)、姓名、姓氏、年龄、城市,在项目表中:ID(主键)、姓名、成本、seller_id、出价。我设法编写的查询是这样的:

delete database.users, database.edata,database.items
from database.users
left join database.edata ON database.users.id = database.edata.id
left join database.items on database.users.id = database.items.seller_id
where database.users.username = 'mark'

该查询删除 user 表中用户 id 与 edata 表中用户 id 以及 items 表中 seller_id 相同且 user 表中用户名等于给定值的所有行,在本例中为“标记”。 该查询在 mysql 工作台中工作得很好,但由于某种原因,当我想在 Visual Studio 中的 C# 代码中使用它时,我得到了这个异常:多重删除中的未知表。 我在这个问题上红了很多,我发现如果使用别名,则存在一些多重删除的错误,但就我而言,我没有使用任何别名。我什至使用表和表列的全名。 现在,我不得不使用几种不同的查询来删除行,老实说,我不喜欢它,因为只能使用一个查询。那么有没有人可以帮助我?任何反馈将不胜感激。

最佳答案

您应该在顶部 DELETE 部分使用表别名,而不是表的全名。

你能试试这个吗?

DELETE u
FROM database.users AS u
LEFT JOIN database.edata AS d
    ON d.id = u.id
LEFT JOIN database.items AS i
    ON i.seller_id = u.id
WHERE u.username = 'mark'

这是我在工作中写的,所以无法测试。您可能需要提及 DELETE 和 FROM 之间的其他别名。

关于c# - 多重删除在 mysql 工作台中工作但在 Visual Studio 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24058429/

相关文章:

mysql - 如何从两个不同的行中获取两个最大 ID?

c# - 如何实现像 Buxfer : Open Id, Facebook、Google、Aol 等通用登录系统

c# - 自定义检查器将值恢复为 Unity 中 Play 上之前的值

mysql - 创建触发器语法错误

MySQL 具有 SUM(column1) <> column2 不起作用

mysql - 从表中删除重复的行(每天的第一个时间戳除外)

sql-server - 几个外键和级联删除SQL Server

mysql - REPLACE INTO,它是否重新使用 PRIMARY KEY?

c# - 在 RichEditBox 中突出显示单词

c# - 如何在Web应用程序而不是C#中的Windows应用程序中创建sqlite文件