所以我需要在桌子上加入。这是我使用的查询:
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是否为空并在这种情况下执行完全不同的查询。有没有办法修复查询,以便它可以在两种情况下工作?
答案 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