Я полностью сбит с толку результатами этого запроса:
select count(*) from my_tab mt
where mt.stat = '2473'
and mt.name= 'Tom'
and exists (select * from company_users@colink.world cu,
personnel_records@colink.world pr
where cu.user_id = pr.user_id
and mt.name = pr.name
and mt.stat = cu.stat
)
Возвращает: 1
В company_users@colink.world есть 0 записей с stat = '2473', так почему же он возвращает true для существующих?
Если я изменю запрос следующим образом, он возвращает 0:
select count(*) from my_tab mt
where mt.stat = '2473'
and mt.name= 'Tom'
and exists (select * from company_users@colink.world cu,
personnel_records@colink.world pr
where cu.user_id = pr.user_id
and mt.name = pr.name
and cu.stat = '2473'
)
ОБНОВЛЕНИЕ Хорошо, это действительно странно. Чтобы посмотреть, что произойдет, я выполнил запрос из другой базы данных (на которую ссылаются ссылки в БД), и он дал другие (правильные) результаты.
select count(*) from my_tab@mylink.world mt
where mt.stat = '2473'
and mt.name= 'Tom'
and exists (select * from company_users cu,
personnel_records pr
where cu.user_id = pr.user_id
and mt.name = pr.name
and mt.stat = cu.stat
)
Возвращает 0 (как и ожидалось).