できるだけ明確に私の問題を語ります。私はOralce SQL Developerでデータベースを作成しており、データベースが作成されたら特定のデータを照会できる必要があります。だからここに私の問題です。2つの列が両方ともFKで、同じPKを参照している場合、2つの列の詳細を表示するには
私は、ゲームで作成されたすべてのアバターの情報を記載したアバターテーブルを持っています。アバターはスーパーアバターに進化し、2人のスーパーアバターは繁殖してメガアバターを作成できます。これらの異なるタイプのアバターはすべて、アバターテーブルにその属性が格納されています。クエリの1つでは、すべての親アバターとメガアバター子供の詳細を取得する必要があります。
これを行うには、単純にFatherID(FK)とMotherID(FK)の両方が同じテーブルにリンクしているSuperAvatarとMegaAvatarの間にリンクテーブルを作成しました。 SuperAvatar.SuperAvID(PK)。リンクテーブルの最後の列は、MegaAvatar.MegaAvID(PK)テーブルにリンクするMegaAvID(FK)です。
ERDの写真とクエリを実行している私のスクリーンショットが含まれます。
次のクエリを書くと、結果は表示されません。なぜこれは、誰かが私が間違っているのを見ることができますか?前もって感謝します!
SELECT AvatarName AS "Fathers", AvatarName AS "Mothers"
FROM MegaAvatar, MegaAvParents, SuperAvatar, Avatar
WHERE MegaAvatar.MegaAvID=MegaAvParents.MegaAvID
AND MegaAvParents.FatherID=SuperAvatar.SuperAvID
AND MegaAvParents.MotherID=SuperAvatar.SuperAvID
AND SuperAvatar.SuperAvID=Avatar.AvatarID;
簡単なルール:*決して* FROM句にカンマを使用しないでください。 *常に*適切で明示的な 'JOIN'構文を使用します。うまくいけば、あなたはあなたのクラスの古くなった古い構文を学んでいないでしょう。 –