Q:

Выборка другого поля, но если только текущее поле имеет номер

Здравствуйте!
Есть таблица в базе данных (пример):
id| f1 | f_new | f_alt | status
1 | 13 |       |       | active
2 | 12 |  13   |       | archive

И есть запрос (пример)
SELECT * FROM `table`  WHERE f1 = '12' or f_alt = '12'

Вопрос следующий:
возможно ли в запросе узнать, что строка имеет не пустое поле f_new и затем выбрать строку по значению из f_new, т.е. f_new = f1 (id1), и не выбирать строку id2
UPD. Есть проблема, если допустим таблица выглядит так (нужно достать активную стоку, т.е. id3 :
id| f1 | f_new | f_alt | status
1 | 13 |   14  |       | archive
2 | 12 |   13  |       | archive
3 | 14 |       |       | active

A:

select * from table where f1=(select f_new from table where f1=12)

Совсем простой вариант, не учитывающий, например, что значения в полях не уникальны.

