pid
は外部キーで、私は3つの異なるテーブル(A
、B
、C
と呼ぶ)よりもプライマリキーがpid
であるテーブルを持っています。複数のテーブルに特定のIDが存在し、Oracleには特定のIDが存在するかどうかをチェックする方法は?
具体的なpid
がこれらのテーブルのいずれかに存在し、そのうちのどれかが正確にわかっている必要があります。
これは、単一のクエリで達成可能である場合、私は知らないが、私はこれを行うことができるように機能が私の特定の場合にはより良い仕事だろうと思っている:
SELECT pid, name, sex, func_name(pid) my_str
FORM persons
WHERE pid = 5
そして、依存pid = 5
をテーブルB
とC
上で発見された意味
B | C
:PIDが発見されたテーブルの上に、my_str
はようなものになるだろう。
これは、関数内で3つのSELECTを使用してCOUNT(*)を使用して行うことができます。結果が0より大きい場合、それぞれのSELECTからテーブルにpid = 5
が見つかりました。しかし、これはそれを行うための愚かな方法、示唆ですか?
これはほとんど動作しています。それはまったく同じ値を持つレコードの束を返し、私は1つだけ必要です。 'pid'に' GROUP BY'を使用しようとしましたが動作しません。 –
気にしないで、代わりにDISTINCTを使って解決してください。 –