+
95
-

回答

要从通话记录中查找A用户通话过的所有人,可以使用SQL查询。假设你的通话记录表结构如下:

CALL_LOGS (
  id INT PRIMARY KEY,
  caller VARCHAR(255),
  receiver VARCHAR(255),
  call_time DATETIME
)

这里有一个SQL查询示例,用于查找用户A通话过的所有人(无论是作为主叫还是被叫):

SELECT DISTINCT other_user
FROM (
  SELECT receiver AS other_user
  FROM CALL_LOGS
  WHERE caller = 'A'
  UNION
  SELECT caller AS other_user
  FROM CALL_LOGS
  WHERE receiver = 'A'
) AS combined_calls;
解释:

内层子查询:将两次选择结果联合在一起,第一次选择是找出A用户作为主叫拨打电话的所有被叫用户,第二次选择是找出A用户作为被叫接听电话的所有主叫用户。

SELECT receiver AS other_user
FROM CALL_LOGS
WHERE caller = 'A'
UNION
SELECT caller AS other_user
FROM CALL_LOGS
WHERE receiver = 'A'
SELECT receiver AS other_user FROM CALL_LOGS WHERE caller = 'A':查找A用户作为主叫的所有被叫用户。UNION:将两个结果集进行合并,去除重复值。SELECT caller AS other_user FROM CALL_LOGS WHERE receiver = 'A':查找A用户作为被叫的所有主叫用户。

外层查询:选择出所有的不同用户。sqlSELECT DISTINCT other_userFROM ( ...) AS combined_calls;

使用DISTINCT确保结果中没有重复的用户。

这样,你就可以查找到用户A通话过的所有人。

网友回复

我知道答案,我要回答