获取某些表的用户 ID 引用的已删除用户详细信息

Posted

技术标签:

【中文标题】获取某些表的用户 ID 引用的已删除用户详细信息【英文标题】:Get deleted users details if userid refrence to some table 【发布时间】:2021-01-07 17:34:15 【问题描述】:

我对这个问题有点困惑,我有一个名为Member的表格,其结构如下,

+----------+------+-------------+
| MemberID | Name | ActiveState |
+----------+------+-------------+
| 1        | PAUL | 1           |
+----------+------+-------------+
| 2        | JHON | 1           |
+----------+------+-------------+
| 3        | AMBE | 0           |
+----------+------+-------------+
| 4        | NISH | 1           |
+----------+------+-------------+

我还有另一个名为 ServiceProvided 的表。及其结构如下。所有会员提供的数据都将保存在此表中。

+--------------+-------------+------------+
| ServiceProID | Fkserviceid | FkMemberID |
+--------------+-------------+------------+
| 1            | S1          | 1          |
+--------------+-------------+------------+
| 2            | S2          | 1          |
+--------------+-------------+------------+
| 3            | S1          | 2          |
+--------------+-------------+------------+
| 4            | S3          | 2          |
+--------------+-------------+------------+

应用程序可以通过将成员的活动状态更改为0 来软删除成员。我需要获取所有ActiveState = 1members 数据,并且仅当该成员过去提供过任何服务时才需要获取,即使他被删除也应该检索他的数据。我该怎么做。

预期输出是,

ActiveState = 1ActiveState = 0 过去只提供过任何服务的会员

【问题讨论】:

预期输出是什么? 是什么决定了某人过去是否提供过服务? FkMemberID = MemberID 的存在? @jw11432 如果有人提供任何服务,则将其存储在ServiceProvided 表中。 FkMemberID = MemberID ?是的 @Serg 所有ActiveState = 1 and ActiveState = 0 members who has provided any service in the past 【参考方案1】:
SELECT m.* 
FROM Member m 
WHERE m.ActiveState = 1

UNION 

SELECT m.* 
FROM Member m 
INNER JOIN ServiceProvided s ON m.MemberId = s.FkMemberId 
WHERE m.ActiveState = 0;

实现这一目标的最简单方法是使用 UNION。

已删除成员查询上的 INNER JOIN 可确保您不会检索在 ServiceProvided 中缺少条目的成员。

【讨论】:

感谢您的回答,我需要ActiveState = 1 + ActiveState = 0 members who has provided any service in the past 内容已更新以满足您的说明。如果这符合您的需求,请将其标记为已回答,以帮助其他有类似问题的人。

以上是关于获取某些表的用户 ID 引用的已删除用户详细信息的主要内容,如果未能解决你的问题,请参考以下文章

应用内购买获取空白 Sku 详​​细信息列表

如何通过身份池/用户池 ID(子)获取用户池详细信息

在按每个用户ID映射和获取用户详细信息时,API无法正确获取用户的数据

映射具有用户 ID 的对象数组并从此用户 ID 获取用户详细信息

如何获取android 进程信息

Facebook 登录响应:不获取用户详细信息(ID 和名称除外)