如何在多个数据库表中搜索最有效的值



我在Java中为deleteUserMethod添加了一个验证。为了确保用户在数据库中没有任何连接,我想在数据库的几个表中检查该用户。我的想法是这样的:

SELECT RoleId FROM Role WHERE Name = 'JH';
SELECT Salary FROM Office WHERE Name = 'JH';
SELECT Position FROM Employees WHERE JH = 'JH';

你会做一个简单的联接吗?

最好从该表中检索一些数据,以便在删除用户之前删除数据。

如果您只想对名称JH是否存在于三个表中的任何一个表中给出一个是/否的答案,您可以使用带有联合的单个exists查询:

SELECT EXISTS
(
SELECT 1 FROM Role WHERE Name = 'JH'
UNION ALL
SELECT 1 FROM Office WHERE Name = 'JH'
UNION ALL
SELECT 1 FROM Employees WHERE Name = 'JH'
) t;

但是,必须执行这样的查询可能意味着表设计不好,可能没有正确规范化。通常,查询应该涉及一个或多个表之间的联接,而不是联合。

最新更新