仅当一个表为空时查询失败

时间:2016-05-05 16:58:27

标签: mysql

所以我需要在桌子上加入。这是我使用的查询:

SELECT CONCAT(u.Apellido, ', ', u.Nombre) AS Nombre, u.keyid AS keyid 
FROM tUsuarios AS u, tLaboratorio AS l 
WHERE (l.Responsable != u.keyid) AND (u.Activo = '1' AND u.keyid != -1)

我需要表tUsuarios的所有用户,其唯一标识符不在表1中的Responsable列中的任何行中(因此u.keyid!= l.Responsable)

如果tLaboratorio中至少有一个条目可以使用。否则返回一个空集。但是,当第一次使用系统时,该表将为空。

我能想到的唯一解决方案是测试tLaboratorio是否为空并在这种情况下执行完全不同的查询。有没有办法修复查询,以便它可以在两种情况下工作?

1 个答案:

答案 0 :(得分:0)

您无需加入表格。您只需要一个简单的嵌套查询。

SELECT CONCAT(u.Apellido, ', ', u.Nombre) AS Nombre, u.keyid AS keyid 
FROM tUsuarios AS u 
WHERE u.keyid NOT IN (SELECT Responsable FROM tLaboratorio) AND u.Activo = '1' AND u.keyid != -1