我有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/

10-10 18:02