私は SQL とデータベースの設計に不慣れで、次のことが可能かどうかを調べようとしています。
私は猫と呼ばれるテーブルを持っています.PK(cat_id)はC1、C2、C3などであり、猫の名前を持つ別の属性(および他の複数の属性)です。
私は犬と呼ばれるテーブルを持っています.PK(dog_id)はD1、D2、D3などであり、犬の名前を持つ別の属性(および他の複数の属性)です。
次に、属性 Cat_Dog_ID (C1、C2、C3、D1、D2、D3 など) を持つ動物、PK 1、2、3、4、5、6 などと呼ばれるテーブルがあります。
次にやりたいことは、猫と犬の名前を戻す select ステートメントです。
An_Id - Cat_Dog_ID - 名前 1 - C1 - ヘンリー 2 - C2 - ひげ 3 - C3 - グレー 4 - D1 - むら 5 - D2 - ウーフ 6 - D3 - 最大
個別に行うのは簡単です:
SELECT a.an_id, a.cat_dog_id, c.cat_name
FROM animal a, cat c
WHERE a.cat_dog_id = c.cat_id;
SELECT a.an_id, a.cat_dog_id, d.dog_name
FROM animal a, dog d
WHERE a.cat_dog_id = d.dog_id;
これらを組み合わせるために多くのことを試しましたが、次のようにサブクエリ/ネストされたクエリを使用する必要があることは確かですが、これまでのところ何も機能していません。
SELECT a.an_id, a.cat_dog_id, c.cat_name "Name"
FROM animal a, cat c
WHERE a.cat_dog_id = c.cat_id
AND (SELECT a.an_id, a.cat_dog_id, d.dog_name "Name"
FROM animal a, dog d
WHERE a.cat_dog_id = d.dog_id);
SELECT a.an_id, a.cat_dog_id FROM animal a
where a.cat_dog_id = c.cat_id in (select c.cat_name "Name" from cat c)
WHERE a.cat_dog_id = d.dog_id in (select d.dog_name "Name" from dog d);
これを行う方法について何か提案はありますか?