我正在使用MySQL 5.6.23。在我的数据库中,我有两个表,tblFiles和tblLogs。表tblFiles包含ID(PK),文件路径和文件名(均为VARCHAR)。
表tblLogs包含ID(PK),tblFiles中条目的referenceID(FK)和actionCode(0,1或2)。
tblFiles中的条目可能如下所示:
1 | c:\root\files | test1.txt
2 | c:\root\files | test2.txt
3 | c:\root\files | test3.txt
tblFiles中的条目看起来像
1 | 1 | 0
2 | 1 | 1
3 | 2 | 0
4 | 3 | 2
我需要获取tblLogs中只有actionCode 0的所有文件的路径和文件名(来自tblFiles)。通过上面的示例,查询应返回:
c:\root\files | test2.txt
如果这个问题对您来说很奇怪,那是因为这是我的任务的一部分。现在,我试图想出如何获得只有actionCode 0的条目(即只获得一个会返回referenceID 2的查询)。我尝试了不同的查询,如:
SELECT referenceID FROM tblLogs WHERE actionCode = 0 AND (actionCode != 1 OR actionCode != 2);
我甚至不知道这样的查询是否可行......如果你们能帮助我,我将不胜感激!
答案 0 :(得分:0)
以下是使用max
和min
的一种方式:
select f.loc, f.name
from tblFiles f
join tblLogs l on f.id = l.referenceid
group by f.loc, f.name
having max(l.actioncode) = 0 and min(l.actioncode) = 0