0

2 つのテーブル (TableA と TableB) があるとします。

TableA には Id (主キー) と特定の値 ("stuff" など) を持つ識別子があります。 TableB には、基本的に TableA id ("StuffId") の外部キーである id 列があります。

私がやりたいのは、TableA の「もの」(たとえば) の識別子の値をチェックする TableB の SQL クエリを作成し、値が「もの」の場合は、tableA の Id (主キー) を取得し、そのリンクを作成することです。列「StuffId」の TableB の値

これは実行可能ですか?

ありがとうございました

はい、すでに存在する行があります。

TableA が持っている可能性があります

ID     Discriminator
--------------------    
1         stuff
2        notstuff
3         stuff

TableB が持っている可能性があります

StuffID     Name
-----------------    
   43       ffr
   87       fd

stuffId 列を TableA の列と同じにしたいのですが、TableA の識別子が「stuff」の場合のみです

4

1 に答える 1

1

わかりました、私のコメントを回答として再投稿します:

 INSERT TableB (StuffId) SELECT Id from TableA WHERE discriminator='Stuff'

元の投稿に記載されているように、あなたが望むことを達成する必要があります。TableB に追加された新しい行は、クエリで指定されていないため、名前フィールドに null または既定値が含まれることに注意してください。

編集: 一意性と制約に関する TableB の設計によっては、このクエリは正しい結果を返さない可能性があります (たとえば、一意であると想定されている場合、TableB に StuffId が存在する行が既に存在する場合、失敗する可能性があります。一意でない場合、重複する行が追加される可能性があります)。テーブルとそれらがどのように関連しているかについての詳細な説明がなければ、適切な回答を提供することは困難です。

于 2013-04-25T11:28:41.887 に答える