我有2个表格,但我只想查询“已拒绝”状态,
意味着我需要查询用户仅具有拒绝状态的结果,而不是具有批准和拒绝或批准提交表的结果
Users Table
-----------
id | name
-----------
1 | John
2 | Doe
3 | Testing
4 | Sample
Submission Table
-------------------------------
id | user_id | title | status
-------------------------------
1 | 1 | title1 | approved
2 | 1 | title2 | rejected
3 | 2 | title3 | approved
4 | 2 | title4 | approved
5 | 3 | title5 | rejected
6 | 3 | title6 | rejected
7 | 3 | title7 | rejected
8 | 4 | title8 | approved
9 | 4 | title9 | approved
10| 4 | title10| rejected
11| 4 | title11| rejected
以下是我想要实现的结果:
但是我只通过“拒绝”加入了结果查询,但仍然得到了用户的“批准”结果。
但是上面的查询,我会得到这个结果。
我想查询的是,查询提交的状态仅是“已拒绝”,完全忽略“已批准”,“批准或拒绝”结果。
最佳答案
我已经找到一种解决方案,该解决方案正在使用WHERE NOT EXISTS
过滤提交中的approved
结果
SELECT u.id AS user_id,s.*, u.name
FROM submissions s
LEFT OUTER JOIN users u
ON s.user_id = u.id
WHERE NOT EXISTS (
SELECT USER_ID
FROM submissions tmp
WHERE tmp.User_ID = s.User_ID
AND tmp.status = 'approved'
)
AND STATUS = 'rejected'
关于mysql - 仅选择特定值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29224279/