У меня есть таблица с именем 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.Но это кажется глупым способом сделать это, предложения?