2017-02-26 173 views
0

我有一个表如下所示,并显示一个USR表是用户是管理员或普通用户。在这种情况下USR_ID:图1是作为管理员MySQL如果条件where条款查询

EMP_ID  Terminated EMP_Name  EMP_Loc 
    1   0   John   Caster 
    2   1   Sally  Jules 
    3   0   Steven  James 

这是一个EMP分贝表和EMP#2被终止,当一个普通用户查询DB中,封端的员工不应该被示出并且在管理员询问DB,我想显示所有员工,包括终止的员工。

这里是我的查询

select * from EMP join USR on USR.ID = EMP.EMP_ID 
where (IF USR.ID = '1',terminated='1',terminated in ('0','1')) 

但此查询只显示未终止的用户始终即使是管理员用户

+0

你能守USR表模式? – McNets

回答

0

你可以使用或在您的WHERE条件,像

select * from EMP join USR on USR.ID = EMP.EMP_ID 
where (USR.ID = '1' and terminated='1') or (USR.ID <> '1' and terminated in ('0','1')) 
0
SELECT * 
FROM EMP 
     INNER JOIN USR ON USR.ID = EMP.EMP_ID 
WHERE 
     (USR.ID = '1' AND Terminaded = '1') OR (USR.ID <> '1') 
0

根据您的要求,您可以试试这个:

select * 
from EMP join USR on USR.ID = EMP.EMP_ID 
where (USR.ID <> '1' and Terminated = '1') or (Terminated in ('0', '1')) 

如果Terminated只有两个值 '0' 或 '1',你可以删除or条款:

select * 
from EMP join USR on USR.ID = EMP.EMP_ID 
where (USR.ID <> '1' and Terminated = '1')