SELECT DISTINCT h.hostid,h.host
FROM hosts h,hosts_groups hg,rights r,users_groups ug
WHERE hg.hostid=h.hostid
AND r.id=hg.groupid
AND r.groupid=ug.usrgrpid
AND ug.userid=100100000000003
AND r.permission>=2
AND NOT EXISTS(
SELECT hgg.groupid
FROM hosts_groups hgg, rights rr, users_groups gg
WHERE hgg.hostid=hg.hostid
AND rr.id=hgg.groupid
AND rr.groupid=gg.usrgrpid
AND gg.userid=100100000000003
AND rr.permission<2
)
AND ((h.hostid BETWEEN 100000000000000 AND 199999999999999))
AND h.status IN (0,1)
AND h.host LIKE 'M%'
ORDER BY h.host
LIMIT 15
executes ~4s
|