select * from tablename where id in(select id from tablename2 where condition UNION select -1)
Можно ли использовать select -1, как будто внутренний запрос ничего не дает, он выдаст ошибку.Это осуществимо или нет?
imho, inner-select далеко от идеала (медленно)
inner-select
в зависимости от вашего опубликованного SQL, an inner join сделает свое дело
an inner join
select * from tablename as t1 inner join tablename2 as t2 on t1.id=t2.id where condition; --- your condition
Если вам нужно сделать это с помощью подзапроса, то правильный способ сделать это, вероятно, будет:
SELECT * FROM tablename AS t1 WHERE EXISTS (SELECT id FROM tablename2 AS t2 WHERE conditions)
Не выдаст ошибку, если запрос ничего не даст. Он просто возвращает пустой набор результатов.