sql - SQL select where multiple conditions by same id from a table with two conditions
问题描述
请帮助我,我有一个如下表,我想通过 id 获取数据,条件为 2:
responded
=> 获取 id wherestatus ='sent'
andstatus = ''
andstatus = 'delivered'
pending
=> 获取 id wherestatus ='sent'
andstatus = 'delivered
,而不是 withstatus = ''
message_thread_id | 地位 |
---|---|
229 | |
229 | 发表 |
229 | 发送 |
229 | 发表 |
229 | 发表 |
240 | 发送 |
240 | 发送 |
1044 | |
1044 | |
1044 | |
1068 | 发表 |
解决方案
这不是一个很好的方法,但却是一个开始思考的好开始。
我会在存储过程中的临时表中考虑。但是您的问题没有具体说明,因为您没有任何尝试。
我会制作一个包含几列的表,指示用户的特定状态是真还是假,填充它,然后按查询过滤。
但无论如何,这里是“开始思考”的查询:
SELECT
message_thread_id, 'responded' as status
FROM
table
WHERE
message_thread_id IN (SELECT message_thread_id
FROM table WHERE status = 'sent')
AND message_thread_id IN (SELECT message_thread_id
FROM table WHERE status = '')
AND message_thread_id IN (SELECT message_thread_id
FROM table WHERE status = 'delivered')
UNION ALL
SELECT
message_thread_id, 'pending' as status
FROM
table
WHERE
message_thread_id IN (SELECT message_thread_id FROM table
WHERE status = 'sent')
AND message_thread_id NOT IN (SELECT message_thread_id
FROM table WHERE status = '')
AND message_thread_id IN (SELECT message_thread_id
FROM table WHERE status = 'delivered')
推荐阅读
- go - 无法通过 Testify Mock 对象错误
- python - 将 numpy 32int 保存到多层 tiff
- bash - 无法使用 shell 脚本以所需格式输出值
- perl - 尝试将变量输入 url 并遇到编码问题
- angular - 我们如何遍历表单组中的各个表单控件?
- c# - 以编程方式最大化无边框窗口
- swift - Swift 警告:“弱”不应应用于协议中的属性声明
- python - 在numpy中计算两个矩阵的行之间的角度
- php - How to generate increment number for each group of data?
- linux - Understanding awk command usage while passing a file content in it