У меня есть стол MYTABLE
N_REC | MYFIELD |
1 | foo |
2 | foo |
3 | bar |
где N_REC - первичный ключ, а MYFIELD - неуникальное поле.
Мне нужно запросить эту таблицу в MYFIELD и извлечь связанный с ней N_REC, но только если есть только одно вхождение MYFIELD; в противном случае мне не нужно возвращать записи.
Поэтому, если я пойду с MYFIELD = 'bar', я получу 3, если я пойду с MYFIELD = 'foo', я не получу никаких записей.
Я пошел со следующим запросом
select * from
(
select
n_rec,
( select count(*) from mytable where mycolumn=my.mycolumn ) as counter
from mytable my where mycolumn=?
)
where counter=1
Хотя это дает мне желаемый результат, я чувствую, что выполняю один и тот же запрос дважды.
Есть ли лучшие способы добиться того, что я делаю?