をプライマリキーとして持つテーブルAuthors
がSQL Serverにあります。SQL Serverで複数値の外部キーを処理する方法
Authors
テーブル構造
Author_ID | Author_Name
----------------------------
677 | Nuno Vasconcelos
1359 | Peng Shi
6242 | Z. Q. Shi
... | ...
... | ...
私は主キーとしておよび外部キーとしてAuthor_ID
とCoAuthor_ID
で別のテーブルCoAuthors
を持っています。
CoAuthors
テーブル構造
CoAuthor_ID | CoAuthor_Name | Author_ID
---------------------------------------
47 | Jim Bezdek | NULL
111 | Vishal Gupta | NULL
318 | Muaz A. Niazi | NULL
... | ... | ...
... | ... | ...
私はと別の著者・共著者マッピングテーブルYearly_Author_CoAuthors
を持っています。今、私はAuthors
テーブルから取得CoAuthors
テーブルに外部キーを挿入する必要が
Author_ID | CoAuthor_ID | Year
------------------------------
677 | 901706 | 2005
677 | 838459 | 2007
677 | 901706 | 2007
... | ... | ...
... | ... | ...
。
SELECT
Author_ID, CoAuthor_ID, Year
FROM
Yearly_Author_CoAuthors
WHERE
CoAuthor = 901706
ORDER BY
Author_ID, Year, CoAuthor_ID
そして、私はこの出力を得た:
CoAuthor_ID = 901706
はそう、2
DISTINCT Author_ID
を持っていることを示している
Author_ID | CoAuthor_ID | Year
------------------------------
677 | 901706 | 2005
677 | 901706 | 2007
677 | 901706 | 2009
1683703 | 901706 | 2012
問題は、私はこのクエリを実行するインスタンスのようCoAuthor_ID
ためAuthor_ID
の複数の値を持つことができていますここに:
CoAuthors
テーブルに外部キー制約としてAuthor_ID
を挿入するにはどうすればよいですか?
グーグルで外部キーを追加しましたか?具体的には、実行している問題は何ですか? – dfundako
私が正しく理解していれば、2人の人物が一緒に仕事をしていた本を何かに保存するために、著者をCoAuthorにマップするブリッジテーブルを追加しましたか?もしそうなら、あなたはCoAuthorと著者の間に1対多の関係が必要ですか? – MLT
あなたのデザインはそれを許可していないので、それを持つことはできません。 –