それは完全に可能です。
特定のアカウントに複数のアドレスがある場合、または特定のアドレスに複数のアカウントがある場合、アドレスまたはアカウント テーブルにあるものよりも多くの行が作成される可能性があります。
検討:
Account
id | ... | cityid
4 | ... | 12
5 | ... | 12
6 | ... | 13
7 | ... | 14
Address
id | ... | cityid
2 | ... | 12
3 | ... | 13
4 | ... | 14
参加すると、次のものが得られます。
Account Address
id | ... | cityid | id | ... | cityid
4 | ... | 12 | 2 | ... | 12
5 | ... | 12 | 2 | ... | 12
6 | ... | 13 | 3 | ... | 13
7 | ... | 14 | 4 | ... | 14
したがって、Address に 3 つのレコードがあり、レコード Address.2 が繰り返されているにもかかわらず、4 つのレコードが返されていることがわかります。
外部キーの関係が逆になった場合、これは逆になる可能性があります。
そして、これは実際にはリレーショナル データベースの核となる機能であり、外部キーの関係が維持された状態で入力されたデータは、データ入力を繰り返す必要がありません。
結合する最初の (最小の ID) 値のみを選択することで、行を制限できます。これには通常、一時テーブルの作成が含まれます。これは、Sybase の構文が異なるため、オラクルの専門家に任せます。 (そして、ストアドプロシージャ内で実行する必要があります、yick)。
問題を解決する可能性が高いと思われるスキーマの解釈が、あなたが説明したものとは少し異なるのではないかと考えています。