我有
Tablename id coid name test passfail testdate VALUES 1 1 Chris mod1 fail 2015-05-20 2 1 Chris mod1 pass 2015-05-25 3 2 Patrick mod1 fail 2015-06-10 4 3 James mod1 2015-12-21 5 4 Agnes mod1 cancelled 2015-07-01 6 5 Freya mod1 pass 2015-07-01 7 5 Freya mod2 pass 2015-07-05
它列出了谁做了什么测试以及何时,以及是否通过了测试.
我需要能够返回未通过mod1测试的人的结果.
如果我使用
SELECT * FROM `tablename` WHERE `test` = 'mod1' AND `passfail` != 'pass'
克里斯在结果中是因为他也失败了mod1,但我需要能够忽略失败,因为他现在已经过去了.
我追求的结果是……
3 2 Patrick mod1 fail 2015-06-10 4 3 James mod1 2015-12-21 5 4 Agnes mod1 cancelled 2015-07-01
该coid是联系人ID,以防万一我得到两个同名的人.
如果我能找到已经完成mod1的重复coid,那么请选择最近的一个日期,然后检查它是否是通过.我认为这应该给我我需要的结果,我不知道怎么做但是请帮忙
我在sqlfiddle上一直在尝试各种各样的事情
解决方法
试试这个…
SELECT * FROM table_name WHERE coid NOT IN ( SELECT coid FROM same_table_name WHERE test = 'mod1' AND passfail = 'pass' );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。