当列是特定值时mysql选择具有不同过滤器的行

标签 mysql sql

我正在使用一个表格来跟踪所有调用的电话,并且我正在尝试制作一份报告,显示特定 UserID 调用和接听的电话。问题是调用可以作为群组调用进行,并且这些调用对于接收调用的人具有不同的UserID。发出调用时,会使用发出调用的设备的 UserID 生成一个条目,并且 CallDirectionInitiated,然后是一个条目将为每个正在调用电话的设备进行调用,每个设备都有接收设备的 UserIDCallDirectionReceived

唯一将条目联系在一起的是另一列标记为 CallID 的列。他们在这里共享相同的 ID。

所以我想查询具有特定UserID的所有通话记录,如果CallDirectionInitiated,那么我也想获取所有具有该 CallId 的行(与我筛选的 UserID 不同)

Example of entries

我似乎绞尽脑汁不知道如何做到这一点,并且非常感谢任何帮助。

最佳答案

根据我对问题的理解,您可以进行自连接,其中一个副本具有 CallDirection = Initiated 的记录,另一个副本是您的原始表并加入他们在 CallID 上。

SELECT A.RecordID, A.CallID, A.UserID, A.CallDirection 
FROM CALL_HISTORY A 
INNER JOIN 
(SELECT RecordID, CallID, UserID, CallDirection FROM CALL_HISTORY WHERE CallDirection="Initiated" AND UserID=10680 ) I 
ON A.CallID = I.CallID
UNION ALL
(SELECT RecordID, CallID, UserID, CallDirection FROM CALL_HISTORY WHERE CallDirection="Received" AND UserID=10680);

关于当列是特定值时mysql选择具有不同过滤器的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48294018/

相关文章:

java - Java中不插入MySQL数据库

mysql - 计算 JSON 数组 mySQL 中的单词

php - 如何在 PHP 中安装 MySQL 模块?

php - MySQL insert into 在特定字段上失败

Python mysql.connector 连接数据库错误 - 从远程虚拟机运行时发生主机被阻止

MYSQL 在两列中选择 DISTINCT 值

sql - 将查询中每一行的 bool 值设置为 FALSE 'HAVING' ?

php - 为电子邮件选择 DISTINCT,但还获得另一列

sql - ORACLE SQL,其中结尾需要时间

mysql - SELECT AND INSERT QUERY into multiple table with conditions