Все дело в сфере:
SELECT DUMMY
FROM DUAL
WHERE DUMMY IN (SELECT DUMMY FROM z_sites);
такое же, как:
SELECT DUMMY
FROM DUAL
WHERE DUMMY IN (SELECT DUAL.DUMMY FROM z_sites);
Принимая во внимание:
SELECT DUMMY FROM z_sites;
-- there is no dummy column in z_sites table
Чтобы сделать вещь более интереснойвы можете проверить, что произойдет, если z_sites содержит фиктивный столбец:
CREATE TABLE z_sites(dummy VARCHAR2(100));
INSERT INTO z_sites(dummy) VALUES('Y');
SELECT DUMMY
FROM DUAL
WHERE DUMMY IN (SELECT DUMMY FROM z_sites);
-- 0 rows selected
<=>
SELECT DUMMY
FROM DUAL
WHERE DUMMY IN (SELECT z_sites.DUMMY FROM z_sites);
-- 0 rows selected
SELECT DUMMY
FROM DUAL
WHERE DUMMY IN (SELECT DUAL.DUMMY FROM z_sites);
DUMMY
-----
X
DBFiddle Demo
Подводя итог: всегда префикс вашегостолбцы в подзапросе, чтобы избежать путаницы.