У меня есть таблица с именем persons
, первичный ключ которой pid
, чем у меня есть 3 разных таблицы (назовем их A
, B
и C
), где pid
- внешний ключ.
Мне нужно знать, существует ли конкретный pid
в любой из этих таблиц и в какой именно из них.
Я не знаю, достижимо ли это с помощью одного запроса, но я думаю, что функция будет работать лучше в моем конкретном случае, чтобы я мог сделать это:
SELECT pid, name, sex, func_name(pid) my_str
FORM persons
WHERE pid = 5
А затем, в зависимости от таблиц, в которых найден pid, my_str
будет выглядеть примерно так:
B | C
Значение pid = 5
было найдено в таблицах B
и C
.
Я мог бы сделать это с помощью 3 SELECT в функции, используя COUNT (*). Если результат> 0, значит pid = 5
был найден в таблице из соответствующего SELECT. Но это кажется глупым способом сделать это, предложения?