persons
主キーがという名前のテーブルがありますが、3 つの異なるテーブル (とpid
呼びましょう)は外部キーです。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
COUNT(*) を使用して、関数内の 3 つの SELECT でこれを行うことができます。結果が > 0 の場合はpid = 5
、それぞれの SELECT からテーブルに見つかりました。しかし、これはばかげた方法のように思えますが、提案はありますか?