Mysql SQL条件语句
我正在使用MySQL 5.6.23。在我的数据库中,我有两个表,tblFiles和tblLogs。表tblFiles包含一个ID PK、文件路径和文件名 表tblLogs包含一个ID PK、tblFiles中一个条目的引用ID FK和一个操作代码0、1或2 tblFiles中的条目可能如下所示:Mysql SQL条件语句,mysql,sql,conditional-statements,where-clause,Mysql,Sql,Conditional Statements,Where Clause,我正在使用MySQL 5.6.23。在我的数据库中,我有两个表,tblFiles和tblLogs。表tblFiles包含一个ID PK、文件路径和文件名 表tblLogs包含一个ID PK、tblFiles中一个条目的引用ID FK和一个操作代码0、1或2 tblFiles中的条目可能如下所示: 1 | c:\root\files | test1.txt 2 | c:\root\files | test2.txt 3 | c:\root\files | test3.txt 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
我需要从tblFiles中获取所有在tblLogs中只有操作代码0的文件的路径和文件名。在上面的示例中,查询应返回:
c:\root\files | test2.txt
如果你觉得这个问题很奇怪,那是因为这是我任务的一部分。现在,我正试图找出如何只获取actionCode为0的条目,即只获取一个将返回referenceID为2的查询。我尝试过不同的问题,如:
SELECT referenceID FROM tblLogs WHERE actionCode = 0 AND (actionCode != 1 OR actionCode != 2);
我甚至不知道这样的查询是否可能,尽管。。。如果你们能帮助我,我将不胜感激 这里有一种使用max和min的方法:
如果条件是:actionCode=0,则根本不需要此:和actionCode!=1或操作码!=2;@豪尔赫·坎波斯是真的。经过一些研究,我现在了解了更多的情况。我试图找到一种方法,从我的结果中删除可能包含actionCode 1或actionCode 2的值。这非常有效。我从来没有想到我们可以这样使用最小值和最大值!出于我自己的好奇,如果actionCode是一个单独的角色,你会怎么做?还是一个瓦查尔?
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